2015-02-02 11:51 GMT+01:00 Atri Sharma <atri.j...@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
>

Reply via email to