Re: Fix bug with accessing to temporary tables of other sessions

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Soumya S Murali <soumyamurali(dot)work(at)gmail(dot)com>
Cc: Jim Jones <jim(dot)jones(at)uni-muenster(dot)de>, Daniil Davydov <3danissimo(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Stepan Neretin <slpmcf(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Fix bug with accessing to temporary tables of other sessions
Date: 2026-04-20 20:07:23
Message-ID: CAPpHfdtsGSywUExfKMakAuRz8-+61d-4XHkVf=pNQeYTZTVYoA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi!

I've checked the thread. Thanks to all the participants for their
work. I think there is a general agreement on the design.

On Thu, Apr 16, 2026 at 9:41 AM Soumya S Murali
<soumyamurali(dot)work(at)gmail(dot)com> wrote:
> Thank you for the guidance and the updated patch.
>
> On Mon, Apr 13, 2026 at 7:26 PM Jim Jones <jim(dot)jones(at)uni-muenster(dot)de> wrote:
> >
> > Hi
> >
> > On 13/04/2026 14:40, Soumya S Murali wrote:
> > > Please let me know if there are additional scenarios I should
> > > validate. Looking forward to more feedback.
> >
> > Thanks for testing it. You can take a look at
> > 012_temp_obj_multisession.pl and check if we missed any path.
> >
> > Due to changes introduced in b2a17ba7a5d the patch was no longer
> > applying. See rebased v18 attached.
> >
>
>
> I tested the rebased v18 patch on a clean tree and verified that it
> applies cleanly and behaves consistently with previous results.
> Cross-session access is correctly blocked with: ERROR: cannot access
> temporary relations of other sessions
> Index scan paths are also properly restricted, and same-session access
> continues to work as expected.
> The updated test changes look good. Everything works as expected, +1
> from my side.

I see the patch changes the error wording. Previously the error was
"cannot access temporary tables of other sessions", but we change it
to "cannot access temporary relation of other sessions". I see the
intention here: we trigger an error while accessing some relation (not
necessarily a table) then we should reflect this directly to the error
message. However, old message is already here for quite a while and
translated into many languages. Also, is old message incorrect? We
trigger an error on buffer access. That is, we trigger an error only
for relation with a storage: table, index, sequence or matview.
Matview can't be temporary. Also, if you access an index with a
query, that means you're querying its table. But sequence can be
temporary and it can be not directly associated with a table. So,
yes, new error message is more correct. But I would prefer to make it
a separate patch, and replace all the occurrences including contrib.

------
Regards,
Alexander Korotkov
Supabase

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabrízio de Royes Mello 2026-04-20 20:20:39 [PATCH] pg_surgery: Fix WAL corruption from concurrent heap_force_kill
Previous Message Alexander Korotkov 2026-04-20 19:08:46 Re: MERGE PARTITIONS and DEPENDS ON EXTENSION.