Re: BUG with accessing to temporary tables of other sessions still exists
X-MAN <44973863@qq.com>
From: ZizhuanLiu X-MAN <44973863@qq.com>
To: Daniil Davydov <3danissimo@gmail.com>, Jim Jones <jim.jones@uni-muenster.de>, pgsql-hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-20T15:48:55Z
Lists: pgsql-hackers
>Hi, > >On Wed, Jun 3, 2026 at 10:20?PM Jim Jones <jim.jones@uni-muenster.de> wrote: >> >> Session 1 here does not create a temporary table (most likely a copy & >> paste error), but I could reproduce this error as you suggested: >> > >Sorry, I wrote it manually and forgot to specify "TEMP". It is implied here, >of course. > >> >> At a first glance the check seems reasonable. One tiny wording nit: the >> comment in ExtendBufferedRelLocal says "... covering any attempt to >> extend local relation.", but to avoid any confusing with the meaning of >> RELATION_IS_LOCAL I'd argue that "covering any attempt to extend a >> temporary relation" would be slightly clearer. >> > >Thanks for looking into this! I agree with your comment. > >Please, see v2 patch with fixed comment. > >-- >Best regards, >Daniil Davydov Hi, Daniil , Jim Just as described in the comment of RELATION_IS_OTHER_TEMP macro in rel.h, existing buffer manager routines including ReadBuffer_common(), StartReadBuffersImpl() and PrefetchBuffer() have already invoked this macro to check cross-session temporary table access. All these functions are located in bufmgr.c. For code consistency, I suggest adding the same RELATION_IS_OTHER_TEMP check in ExtendBufferedRelCommon() (also in bufmgr.c), right before calling ExtendBufferedRelLocal(). Meanwhile, we should also update the comment of RELATION_IS_OTHER_TEMP accordingly to keep the documentation synchronized with code changes. regards, -- ZizhuanLiu (X-MAN) 44973863@qq.com
Commits
-
Prevent access to other sessions' empty temp tables
- c40819ebf954 master landed
- 8021cdceb018 19 (unreleased) landed
- 3aaefe8924f4 18 (unreleased) landed
- 4e49f68b72de 17 (unreleased) landed
- cc3fe7e2a747 16 (unreleased) landed
-
Add tests for cross-session temp table access
- 40927d458fe1 17 (unreleased) cited
-
Prevent access to other sessions' temp tables
- ce146621f786 19 (unreleased) cited