postgres.git / summary / log / commit / refs

commit    28a862e9dcc4559e7c41c8f7d84dc7b3a0c928a2
Author:   Magnus Hagander <magnus@hagander.net>
Date:     Fri Jul 03 13:09:06 2020 +0000
First released in: 14.0, 9.5.23, 9.6.19, 10.14, 11.9, 12.4, 13.0

    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 84efb414d8c..4c80bcdc348 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -1387,7 +1387,7 @@ PrepareTempTablespaces(void) */ if (curoid == MyDatabaseTableSpace) { - tblSpcs[numSpcs++] = InvalidOid; + tblSpcs[numSpcs++] = curoid; continue; } [parent: 6425d6f6aa1a]