Re: [Proposal] Global temporary tables
От | 曾文旌(义从) |
---|---|
Тема | Re: [Proposal] Global temporary tables |
Дата | |
Msg-id | 1B2CF30A-57EB-4BA3-801C-278022A4DC45@alibaba-inc.com обсуждение исходный текст |
Ответ на | Re: [Proposal] Global temporary tables (tushar <tushar.ahuja@enterprisedb.com>) |
Список | pgsql-hackers |
2020年2月25日 下午11:31,tushar <tushar.ahuja@enterprisedb.com> 写道:Hi,I have created two global temporary tables like this -Case 1-
postgres=# create global temp table foo(n int) with (on_commit_delete_rows='true');
CREATE TABLECase 2-postgres=# create global temp table bar1(n int) on commit delete rows;
CREATE TABLEbut if i try to do the same having only 'temp' keyword , Case 2 is working fine but getting this error for case 1 -postgres=# create temp table foo1(n int) with (on_commit_delete_rows='true');
ERROR: regular table cannot specifie on_commit_delete_rows
postgres=#postgres=# create temp table bar1(n int) on commit delete rows;
CREATE TABLEi think this error message need to be more clear .
Also fixed in global_temporary_table_v14-pg13.patch
Wenjing
regards,tusharOn 2/25/20 7:19 PM, Pavel Stehule wrote/:út 25. 2. 2020 v 14:36 odesílatel Prabhat Sahu <prabhat.sahu@enterprisedb.com> napsal:Hi All,
Please check the below findings on GTT.
-- Scenario 1:
Under "information_schema", We are not allowed to create "temporary table", whereas we can CREATE/DROP "Global Temporary Table", is it expected ?It is ok for me. temporary tables should be created only in proprietary schema. For GTT there is not risk of collision, so it can be created in any schema where are necessary access rights.Pavel
postgres=# create temporary table information_schema.temp1(c1 int);
ERROR: cannot create temporary relation in non-temporary schema
LINE 1: create temporary table information_schema.temp1(c1 int);
^
postgres=# create global temporary table information_schema.temp1(c1 int);
CREATE TABLE
postgres=# drop table information_schema.temp1 ;
DROP TABLE-- Scenario 2:
Here I am getting the same error message in both the below cases.
We may add a "global" keyword with GTT related error message.
postgres=# create global temporary table gtt1 (c1 int unique);
CREATE TABLE
postgres=# create temporary table tmp1 (c1 int unique);
CREATE TABLE
postgres=# create temporary table tmp2 (c1 int references gtt1(c1) );
ERROR: constraints on temporary tables may reference only temporary tables
postgres=# create global temporary table gtt2 (c1 int references tmp1(c1) );
ERROR: constraints on temporary tables may reference only temporary tablesThanks,Prabhat SahuOn Tue, Feb 25, 2020 at 2:25 PM 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> wrote:2020年2月24日 下午5:44,Prabhat Sahu <prabhat.sahu@enterprisedb.com> 写道:On Fri, Feb 21, 2020 at 9:10 PM 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> wrote: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.Thanks for the patch.I have verified the same, Now the issue is resolved with v12 patch.Kindly confirm the below scenario:postgres=# create global temporary table gtt1 (c1 int unique);
CREATE TABLE
postgres=# create global temporary table gtt2 (c1 int references gtt1(c1) );
ERROR: referenced relation "gtt1" is not a global temp table
postgres=# create table tab2 (c1 int references gtt1(c1) );
ERROR: referenced relation "gtt1" is not a global temp tableThanks,Prabhat SahuGTT supports foreign key constraints in global_temporary_table_v13-pg13.patchWenjing--With Regards,
Prabhat Kumar Sahu
EnterpriseDB: http://www.enterprisedb.com
-- regards,tushar EnterpriseDB https://www.enterprisedb.com/ The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления:
Следующее
От: Tom LaneДата:
Сообщение: Re: [PATCH] pg_upgrade: report the reason for failing to open the cluster version file