Re: BUG #19437: temp_tablespaces doesn't work inside a cursor? - Mailing list pgsql-bugs

From Dmitriy Kuzmin
Subject Re: BUG #19437: temp_tablespaces doesn't work inside a cursor?
Date
Msg-id CA+TefFDrwAppW33A6Y4Cz1f6Zf11bS3+DOqerx8JCnGspg9xKA@mail.gmail.com
Whole thread Raw
In response to BUG #19437: temp_tablespaces doesn't work inside a cursor?  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-bugs
What does "\o /dev/null" have to do with this?  That's a psql-side operation.

This is a set of commands for psql, and I use \o /dev/null to prevent SELECT results from being printed to the screen. This is unrelated to the problem.

The use of sleep does indicate awareness of the async nature of this.

Correct. Pg_sleep is used to achieve a consistently reproducible result when executing a script.
The same result (creating temporary files in different tablespaces) can be achieved by executing the specified commands manually without use of pg_sleep.

There is something odd here.  Look at the log entry at 12:04:08.016; it uses base/ while the surrounding ones use pg_tblspace/ and the setting itself hasn’t changed during the sequence.

Absolutely correct. Furthermore, each execution of SELECT pg_reload_conf() will cause the next query to create temporary files in base/ once, regardless of the temp_tablespaces value. Try running the above commands manually and reviewing the logs; you'll see what I mean

ср, 25 мар. 2026 г. в 23:52, David G. Johnston <david.g.johnston@gmail.com>:
On Wednesday, March 25, 2026, Tom Lane <tgl@sss.pgh.pa.us> wrote:
PG Bug reporting form <noreply@postgresql.org> writes:
> I'm seeing strange behavior in Postgres when changing the temp_tablespaces
> parameter and suspect a bug. At least, I haven't found a description of this
> behavior in the documentation.

I think you are imagining that pg_reload_conf() is a synchronous
operation.

The use of sleep does indicate awareness of the async nature of this. 

> Ensure that temporary files are created in it:
> \o /dev/null

What does "\o /dev/null" have to do with this?  That's a
psql-side operation.

The comment applies to all three lines in the following block, not just the first line.

There is something odd here.  Look at the log entry at 12:04:08.016; it uses base/ while the surrounding ones use pg_tblspace/ and the setting itself hasn’t changed during the sequence.

I haven’t tried to validate the cursor claim yet but; this definitely isn’t the easiest format to consume and I can’t do much on my own presently.

David J.

pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #19439: pg_stat_xact_user_tables stat not currect during the transaction
Next
From: surya poondla
Date:
Subject: Re: Two issues with REFRESH MATERIALIZED VIEW CONCURRENTLY