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

From Prabhat Sahu
Subject Re: [Proposal] Global temporary tables
Date
Msg-id CANEvxPoKNoddQ6UYOgXkGSZuc30KVZODySJu1E=a8hs1P7PPgA@mail.gmail.com
Whole thread Raw
In response to Re: [Proposal] Global temporary tables  (曾文旌 <wenjing.zwj@alibaba-inc.com>)
Responses Re: [Proposal] Global temporary tables  (曾文旌 <wenjing.zwj@alibaba-inc.com>)
List pgsql-hackers
Hi Wenjing,
Thanks for the new patch.
I saw with the patch(gtt_v23.patch), we are supporting the new concept "global temporary sequence"(i.e. session-specific sequence), is this intentional?

postgres=# create global temporary sequence gt_seq;
CREATE SEQUENCE
postgres=# create sequence seq;
CREATE SEQUENCE
postgres=# \d+
                              List of relations
 Schema |  Name  |   Type   | Owner | Persistence |    Size    | Description
--------+--------+----------+-------+-------------+------------+-------------
 public | gt_seq | sequence | edb   | session     | 8192 bytes |
 public | seq    | sequence | edb   | permanent   | 8192 bytes |
(2 rows)

postgres=# select nextval('gt_seq'), nextval('seq');
 nextval | nextval
---------+---------
       1 |       1
(1 row)

postgres=# select nextval('gt_seq'), nextval('seq');
 nextval | nextval
---------+---------
       2 |       2
(1 row)

-- Exit and re-connect to psql prompt:
postgres=# \q
[edb@localhost bin]$ ./psql postgres
psql (13devel)
Type "help" for help.

postgres=# select nextval('gt_seq'), nextval('seq');
 nextval | nextval
---------+---------
       1 |       3
(1 row)

postgres=# select nextval('gt_seq'), nextval('seq');
 nextval | nextval
---------+---------
       2 |       4
(1 row)

On Tue, Mar 31, 2020 at 9:46 AM 曾文旌 <wenjing.zwj@alibaba-inc.com> wrote:


2020年3月27日 下午5:21,tushar <tushar.ahuja@enterprisedb.com> 写道:

On 3/27/20 10:55 AM, 曾文旌 wrote:
Hi Wenjing,
This patch(gtt_v21_pg13.patch) is not applicable on PG HEAD, I hope you have prepared the patch on top of some previous commit.
Could you please rebase the patch which we can apply on HEAD ?
Yes, It looks like the built-in functions are in conflict with new code.


This error message looks wrong  to me-

postgres=# reindex table concurrently t ;
ERROR:  cannot create indexes on global temporary tables using concurrent mode
postgres=# 

Better message would be-

ERROR:  cannot reindex global temporary tables concurrently

I found that the local temp table automatically disables concurrency mode.
so, I made some improvements, The reindex GTT behaves the same as the local temp table.


Wenjing




-- 
regards,tushar
EnterpriseDB  https://www.enterprisedb.com/
The Enterprise PostgreSQL Company



--

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

pgsql-hackers by date:

Previous
From: Julien Rouhaud
Date:
Subject: Re: WAL usage calculation patch
Next
From: Magnus Hagander
Date:
Subject: Re: Random set of typos spotted