--On Montag, Juni 04, 2007 15:34:14 -0400 Tom Lane <tgl@sss.pgh.pa.us>
wrote:
> The reason I'm thinking per-transaction is that we could tie this to
> setting up a cached list of tablespace OIDs, which would avoid the
> overhead of repeat parsing and tablespace validity checking. We had
> rejected using a long-lived cache because of the problem of tablespaces
> getting dropped, but I think one that lasts only across a transaction
> would be OK.
Hmm i tried an allocated oid list in TopMemoryContext per backend, but i
didn't find any issue with that... What's the reason we cannot work with a
long-living cache during backend lifetime?
Dropping a tablespace caused get_tablespace_name() to return an InvalidOid
and the tablespace selection code to switch to $PGDATA/pgsql_tmp...
-- Thanks
Bernd