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

From 曾文旌(义从)
Subject Re: [Proposal] Global temporary tables
Date
Msg-id 2A922659-0EBF-46E9-81BF-E5A3023B1421@alibaba-inc.com
Whole thread Raw
In response to Re: [Proposal] Global temporary tables  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-hackers


2020年1月29日 上午1:54,Pavel Stehule <pavel.stehule@gmail.com> 写道:



út 28. 1. 2020 v 18:13 odesílatel Pavel Stehule <pavel.stehule@gmail.com> napsal:


út 28. 1. 2020 v 18:12 odesílatel 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> napsal:


2020年1月29日 上午12:40,Pavel Stehule <pavel.stehule@gmail.com> 写道:



út 28. 1. 2020 v 17:01 odesílatel 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> napsal:


2020年1月24日 上午4:47,Robert Haas <robertmhaas@gmail.com> 写道:

On Sat, Jan 11, 2020 at 8:51 PM Tomas Vondra
<tomas.vondra@2ndquadrant.com> wrote:
I proposed just ignoring those new indexes because it seems much simpler
than alternative solutions that I can think of, and it's not like those
other solutions don't have other issues.

+1.
I complete the implementation of this feature.
When a session x create an index idx_a on GTT A then
For session x, idx_a is valid when after create index.
For session y, before session x create index done, GTT A has some data, then index_a is invalid.
For session z, before session x create index done, GTT A has no data, then index_a is valid.


For example, I've looked at the "on demand" building as implemented in
global_private_temp-8.patch, I kinda doubt adding a bunch of index build
calls into various places in index code seems somewht suspicious.

+1. I can't imagine that's a safe or sane thing to do.

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

Opinion by Pavel
+ rel->rd_islocaltemp = true;  <<<<<<< if this is valid, then the name of field "rd_islocaltemp" is not probably best
I renamed rd_islocaltemp

I don't see any change?
Rename rd_islocaltemp to rd_istemp  in global_temporary_table_v8-pg13.patch

ok :)

I found a bug

postgres=# create global temp table x(a int);
CREATE TABLE
postgres=# insert into x values(1);
INSERT 0 1
postgres=# create index on x (a);
CREATE INDEX
postgres=# create index on x((a + 1));
CREATE INDEX
postgres=# analyze x;
WARNING:  oid 16468 not a relation
ANALYZE
The bug has been fixed in the global_temporary_table_v9-pg13.patch



Wenjing





other behave looks well for me.

Regards

Pavel


Pavel


Wenjing






Opinion by Konstantin Knizhnik
1 Fixed comments
2 Fixed assertion


Please help me review.


Wenjing



Attachment

pgsql-hackers by date:

Previous
From: Asif Rehman
Date:
Subject: Re: WIP/PoC for parallel backup
Next
From: "曾文旌(义从)"
Date:
Subject: Re: [Proposal] Global temporary tables