setting per-database/role parameters checks them against wrong context - Mailing list pgsql-hackers

From Peter Eisentraut
Subject setting per-database/role parameters checks them against wrong context
Date
Msg-id 1348802984.3584.22.camel@vanquo.pezone.net
Whole thread Raw
Responses Re: setting per-database/role parameters checks them against wrong context  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Example:

create temporary table foo (a int);
insert into foo values (1);
alter role peter set temp_buffers = 120;
ERROR:  22023: invalid value for parameter "temp_buffers": 120
DETAIL:  "temp_buffers" cannot be changed after any temporary tables
have been accessed in the session.

Another example:

set log_statement_stats = on;
alter role peter set log_parser_stats = on;
ERROR:  22023: invalid value for parameter "log_parser_stats": 1
DETAIL:  Cannot enable parameter when "log_statement_stats" is true.

Another example is that in <=9.1, ALTER DATABASE ... SET search_path
would check the existence of the schema in the current database, but
that was done away with in 9.2.

The first example could probably be fixed if check_temp_buffers() paid
attention to the GucSource, but in the second case and in general there
doesn't seem to be a way to distinguish "assigning per-database setting"
and "enacting per-database setting" as a source.

Ideas?





pgsql-hackers by date:

Previous
From: Brian Weaver
Date:
Subject: Re: Patch: incorrect array offset in backend replication tar header
Next
From: Amit Kapila
Date:
Subject: Re: ToDo: allow to get a number of processed rows by COPY statement [Review of Patch]