From 8ac0eb51f7bfc5f7c95f2cc2918b623e85899616 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Fri, 3 Jul 2020 15:09:06 +0200 Subject: [PATCH] Fix temporary tablespaces for shared filesets A likely copy/paste error in 98e8b480532 from back in 2004 would cause temp tablespace to be reset to InvalidOid if temp_tablespaces was set to the same value as the primary tablespace in the database. This would cause shared filesets (such as for parallel hash joins) to ignore them, putting the temporary files in the default tablespace instead of the configured one. The bug is in the old code, but it appears to have been exposed only once we had shared filesets. Reviewed-By: Daniel Gustafsson Discussion: https://postgr.es/m/CABUevExg5YEsOvqMxrjoNvb3ApVyH+9jggWGKwTDFyFCVWczGQ@mail.gmail.com Backpatch-through: 9.5 --- src/backend/commands/tablespace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index bf0a51cf7f..49a8610654 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -1356,7 +1356,7 @@ PrepareTempTablespaces(void) */ if (curoid == MyDatabaseTableSpace) { - tblSpcs[numSpcs++] = InvalidOid; + tblSpcs[numSpcs++] = curoid; continue; }