Re: LOCK TABLE and DROP TABLE on temp tables of other sessions

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
Cc: Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: LOCK TABLE and DROP TABLE on temp tables of other sessions
Date: 2020-02-14 06:05:18
Message-ID: 20200214060518.GD1998@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Feb 13, 2020 at 09:05:01PM +0530, Ashutosh Bapat wrote:
> That looks odd. Other sessions are able to see temporary tables of a given
> session because they are stored in the same catalog which is accessible to
> all the sessions. But ideally, a temporary table should be visible only to
> the session which created it (GTT is an exception). So LOCK and DROP table
> should not succeed.

One thing that we need to consider is if there are applications which
take advantage of LOCK allowed on temp relations from other backends
or not. One downside is that if one backend takes a lock on a temp
table from a different session, then this other session would not
completely shut down (still report the shutdown to the client),
and would remain blocked during the temp schema cleanup until the
transaction of the session locking the temp relation commits. This
blocks access to one connection slot, still we are talking about an
operation where the owner of the temp schema wants to do the lock.

> Thinking from a different perspective, DROP TABLE being able to drop a
> temporary table seems a good tool in case a temporary table is left behind
> by a finished session. But that doesn't seem like a good reason to have it
> and I don't see much use of LOCK TABLE there.

Yep. Robert had actually this argument with DROP SCHEMA pg_temp not
so long ago with me.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2020-02-14 06:12:18 Re: [HACKERS] Moving relation extension locks out of heavyweight lock manager
Previous Message Amit Langote 2020-02-14 05:58:37 Re: assert pg_class.relnatts is consistent