On Thu, Feb 13, 2020 at 6:40 PM Fujii Masao <masao.fu...@oss.nttdata.com>
wrote:

> Hi,
>
> TRUNCATE command on the temporary tables of other sessions fails
> with the following error. This behavior looks expected to me.
>
>      ERROR:  cannot truncate temporary tables of other sessions
>
> However I found that LOCK TABLE and DROP TABLE commands on
> the temporary tables of other sessions are successfully processed,
> if users (like superusers) have enough access privileges on them.
> Is this a bug? ISTM that the similar check that TRUNCATE command
> does needs to be added even in LOCK TABLE and DROP TABLE cases.
>

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.

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.


>
> BTW, even SELECT has the same issue. Basically SELECT on
> the temporary tables of other sessions fails with the following
> error.
>
>      ERROR:  cannot access temporary tables of other sessions
>
> However if the temporary table is empty, SELECT doesn't reach
> the above check, is successfully processed and the relation lock
> is taken. This lock can prevent the backend process that created
> the temporary table from exiting even when the client that
> the backend is connecting to quits. Seems it's problematic.
>
> Regards,
>
> --
> Fujii Masao
> NTT DATA CORPORATION
> Advanced Platform Technology Group
> Research and Development Headquarters
>
>
>

-- 
--
Best Wishes,
Ashutosh Bapat

Reply via email to