Re: Implementation of global temporary tables? - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Implementation of global temporary tables?
Date
Msg-id CAFj8pRBatQU9VRnSQ8WPA9UDYE8qgoHi-9+zy6LpQrxg+vzYiw@mail.gmail.com
Whole thread Raw
In response to Re: Implementation of global temporary tables?  (Atri Sharma <atri.jiit@gmail.com>)
List pgsql-hackers


2015-02-02 11:51 GMT+01:00 Atri Sharma <atri.jiit@gmail.com>:

Some was changed from 2009:

* We have updatable CTE

* We have unlogged tables

Opened questions:

1. Name and conformance with standard of this feature - because we doesn't support modules, a mapping ANSI -> PG should not be trivial

2. Implementation

I see three possible ways how to implement it:

2.a - using on demand created temp tables - most simple solution, but doesn't help with catalogue bloating

2.b - using unlogged tables for holding statistics, relfilenode, and all necessary data

3.c - store ephemeral metadata only in memory without MVCC


With 2.a, essentially, we are defining a global definition of a temp table, but the actual per session objects still follow the same rules are our current temp tables do?

yes .. it means "global temp table is template for local temp table"

2.b seems like a lot of new data, and if we are defining new paths for e.g. statistics for global temp tables, we might end up adding new logic in planner to use those tables. I am not seeing how this will work.

The advantages of this method is transactional behave and moving some bloating content to specific smaller and unlogged tables.
 

Could you elaborate a bit on 3.c please?

Something that really bothers me here, on a different note, is the catalog churn this could cause. Of course, you mentioned in as a point in your email, but I feel that 2.a's showstopper could be the massive catalog churn it causes. Maybe have a way to manage such tables without getting pg_class to bloat pretty quickly (I am assuming you do not mean metadata as the catalog metadata in 3.c).

3.c is good protection against catalog bloating - on second hand - implementation will be probably more complex.
 

Regards,

Atri

pgsql-hackers by date:

Previous
From: Atri Sharma
Date:
Subject: Re: Implementation of global temporary tables?
Next
From: Andres Freund
Date:
Subject: Re: Implementation of global temporary tables?