Re: BUG with accessing to temporary tables of other sessions still exists
Daniil Davydov <3danissimo@gmail.com>
From: Daniil Davydov <3danissimo@gmail.com>
To: Imran Zaheer <imran.zhir@gmail.com>
Cc: Jim Jones <jim.jones@uni-muenster.de>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2026-06-03T18:33:06Z
Lists: pgsql-hackers
Hi, On Thu, Jun 4, 2026 at 12:43 AM Imran Zaheer <imran.zhir@gmail.com> wrote: > > During testing this patch I also noticed that other sessions are also > able to drop the temporary table. > > > postgres=# drop table pg_temp_0.empty_table; > DROP TABLE > > Above command works just fine from the other session. > > I was able to fix that by adding the same check in > heap_drop_with_catalog in heap.c, but I'm not sure whether it's the > right place to add this check. > > Let me know if I am missing something. > It may be counter intuitive, but we allow dropping other session's temp tables. You can find the rationale for this in the 013_temp_obj_multisession.pl test. You can also read this message [1] in the previous discussion. In short, we prohibit looking at other-temp-table's pages not because they belong to another session, but because current temp_buffers implementation doesn't provide the ability to do so. Moreover, the ability to DROP other temp tables can be useful for autovacuum (see orphaned temp tables removal logic) and administrators. [1] https://www.postgresql.org/message-id/4075754.1774378690@sss.pgh.pa.us -- Best regards, Daniil Davydov
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