Re: [Proposal] Global temporary tables

Поиск
Список
Период
Сортировка
От 曾文旌(义从)
Тема Re: [Proposal] Global temporary tables
Дата
Msg-id 82851B35-E2FB-4A5D-AF35-A2B5023DB9F2@alibaba-inc.com
обсуждение исходный текст
Ответ на Re: [Proposal] Global temporary tables  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: [Proposal] Global temporary tables  (Prabhat Sahu <prabhat.sahu@enterprisedb.com>)
Список pgsql-hackers
Hi,
I have started testing the "Global temporary table" feature,
That's great, I see hope.
from "gtt_v11-pg13.patch". Below is my findings:

-- session 1:
postgres=# create global temporary table gtt1(a int);
CREATE TABLE

-- seeeion 2:
postgres=# truncate gtt1 ;
ERROR:  could not open file "base/13585/t3_16384": No such file or directory

is it expected?

Oh ,this is a bug, I fixed it.

Wenjing


On Sun, Feb 16, 2020 at 8:53 PM Pavel Stehule <pavel.stehule@gmail.com> wrote:


ne 16. 2. 2020 v 16:15 odesílatel 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> napsal:


2020年2月15日 下午6:06,Pavel Stehule <pavel.stehule@gmail.com> 写道:


postgres=# insert into foo select generate_series(1,10000);
INSERT 0 10000
postgres=# \dt+ foo
                          List of relations
┌────────┬──────┬───────┬───────┬─────────────┬────────┬─────────────┐
│ Schema │ Name │ Type  │ Owner │ Persistence │  Size  │ Description │
╞════════╪══════╪═══════╪═══════╪═════════════╪════════╪═════════════╡
│ public │ foo  │ table │ pavel │ session     │ 384 kB │             │
└────────┴──────┴───────┴───────┴─────────────┴────────┴─────────────┘
(1 row)

postgres=# truncate foo;
TRUNCATE TABLE
postgres=# \dt+ foo
                          List of relations
┌────────┬──────┬───────┬───────┬─────────────┬───────┬─────────────┐
│ Schema │ Name │ Type  │ Owner │ Persistence │ Size  │ Description │
╞════════╪══════╪═══════╪═══════╪═════════════╪═══════╪═════════════╡
│ public │ foo  │ table │ pavel │ session     │ 16 kB │             │
└────────┴──────┴───────┴───────┴─────────────┴───────┴─────────────┘
(1 row)

I expect zero size after truncate.
Thanks for review.

I can explain, I don't think it's a bug.
The current implementation of the truncated GTT retains two blocks of FSM pages.
The same is true for truncating regular tables in subtransactions.
This is an implementation that truncates the table without changing the relfilenode of the table.


This is not extra important feature - now this is little bit a surprise, because I was not under transaction.

Changing relfilenode, I think, is necessary, minimally for future VACUUM FULL support.
Not allowing relfilenode changes is the current limit.
I think can improve on it. But ,This is a bit complicated.
so I'd like to know the necessity of this improvement.
Could you give me more details?

I don't think so GTT without support of VACUUM FULL can be accepted. Just due consistency.

Regards

Pavel



Regards

Pavel Stehule
 

Wenjing


Regards

Pavel



Wenjing




>
> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company





--

With Regards,
Prabhat Kumar Sahu
EnterpriseDB: http://www.enterprisedb.com

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: David Steele
Дата:
Сообщение: Re: [Patch] Make pg_checksums skip foreign tablespace directories
Следующее
От: Konstantin Knizhnik
Дата:
Сообщение: Re: Yet another vectorized engine