Re: [Proposal] Global temporary tables - Mailing list pgsql-hackers

From 曾文旌
Subject Re: [Proposal] Global temporary tables
Date
Msg-id A1BED593-4D6F-429D-8971-55E6EF62314C@alibaba-inc.com
Whole thread Raw
In response to Re: [Proposal] Global temporary tables  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: [Proposal] Global temporary tables  (Erik Rijkers <er@xs4all.nl>)
Re: [Proposal] Global temporary tables  (tushar <tushar.ahuja@enterprisedb.com>)
Re: [Proposal] Global temporary tables  (tushar <tushar.ahuja@enterprisedb.com>)
Re: [Proposal] Global temporary tables  (tushar <tushar.ahuja@enterprisedb.com>)
List pgsql-hackers


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.
HI all

Vacuum full GTT, cluster GTT is already supported in global_temporary_table_v24-pg13.patch.



Wenjing




Regards

Pavel Stehule
 

Wenjing


Regards

Pavel



Wenjing




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



Attachment

pgsql-hackers by date:

Previous
From: 曾文旌
Date:
Subject: Re: [Proposal] Global temporary tables
Next
From: Nicola Contu
Date:
Subject: Re: EINTR while resizing dsm segment.