Re: Fix bug with accessing to temporary tables of other sessions
Jim Jones <jim.jones@uni-muenster.de>
From: Jim Jones <jim.jones@uni-muenster.de>
To: Daniil Davydov <3danissimo@gmail.com>
Cc: Soumya S Murali <soumyamurali.work@gmail.com>,
Tom Lane <tgl@sss.pgh.pa.us>, Stepan Neretin <slpmcf@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2026-04-09T17:46:02Z
Lists: pgsql-hackers
On 09/04/2026 17:29, Daniil Davydov wrote: > On Thu, Apr 9, 2026 at 9:35 PM Jim Jones <jim.jones@uni-muenster.de> wrote: > Hm. I see that read_stream_begin_relation immediately calls > read_stream_begin_impl, where we have a "rel != NULL" check (read_stream.c:787). > Anyway, I think that we shouldn't rely on the fact that a given Relation will > always be valid. Please, correct me if I am wrong. > > I see that you don't really like the idea of moving this check. But since a > vectored variant of ReadBuffer() may be used by anyone, don't we need to take > it into account? >> Also, wouldn't it potentially make this check multiple times in a table >> scan? > Yep, it will. It is exactly the same logic as for ReadBuffer_common, > PrefetchBuffer and ReadBufferExtended (i.e. checking this constraint before > each buffer read). I don't see anything wrong with this approach. More > precisely, it would be good to avoid multiple checks, but I don't see a way to > do that. This check exists because read_stream_begin_smgr_relation() passes NULL, but I see your point. I guess a check in read_stream_begin_relation() and in StartReadBuffersImpl() would be the best solution? If you agree, could you add it in v16? Thanks! Best, Jim
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Prevent access to other sessions' temp tables
- 4dfae59a1d31 17 (unreleased) landed
- 1b0dd08157bf 18 (unreleased) landed
- ce146621f786 19 (unreleased) landed
-
Add tests for cross-session temp table access
- 40927d458fe1 17 (unreleased) landed
- 1cd37a7a8dc6 18 (unreleased) landed
- 1fee0e857e33 19 (unreleased) landed
-
Doc: use "an SQL" consistently rather than "a SQL"
- b51f86e49a7f 18.0 cited
-
Modify the relcache to record the temp status of both local and nonlocal
- 948d6ec90fd3 8.4.0 cited