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

From 曾文旌
Subject Re: [Proposal] Global temporary tables
Date
Msg-id A7219CA2-B12B-4F3A-A683-12D9756A38A6@alibaba-inc.com
Whole thread Raw
In response to Re: [Proposal] Global temporary tables  (Prabhat Sahu <prabhat.sahu@enterprisedb.com>)
Responses Re: [Proposal] Global temporary tables  (Prabhat Sahu <prabhat.sahu@enterprisedb.com>)
List pgsql-hackers


2020年4月3日 下午8:43,Prabhat Sahu <prabhat.sahu@enterprisedb.com> 写道:

Hi Wenjing,

Please check the allowed values for boolean parameter "on_commit_delete_rows".

postgres=# create global temp table gtt1(c1 int) with(on_commit_delete_rows='true');
CREATE TABLE
Similarly we can successfully create GTT by using the values as: 'true','false', true, false, 'ON', 'OFF', ON, OFF, 1, 0 for boolean parameter "on_commit_delete_rows"

But we are getting error while using the boolean value as: '1', '0', 't', 'f', 'yes', 'no', 'y', 'n' as below.
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='1');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='0');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='t');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='f');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='yes');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='no');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='y');
ERROR:  on_commit_delete_rows requires a Boolean value
postgres=# create global temp table gtt11(c1 int) with(on_commit_delete_rows='n');
ERROR:  on_commit_delete_rows requires a Boolean value
Thanks for review.
This parameter should support all types of writing of the bool type like parameter autovacuum_enabled.
So I fixed in global_temporary_table_v24-pg13.patch.


Wenjing




-- As per the error message "ERROR:  on_commit_delete_rows requires a Boolean value" either we should allow all the boolean values.
Example: CREATE VIEW view1 WITH (security_barrier = 'true') as select 5;
The syntax of VIEW allows all the above possible boolean values for the boolean parameter "security_barrier"

-- or else we should change the error message something like
"ERROR:  on_commit_delete_rows requires 'true','false','ON','OFF',1,0 as Boolean value".

--

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


Attachment

pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: pg_stat_statements issue with parallel maintenance (Was Re: WALusage calculation patch)
Next
From: 曾文旌
Date:
Subject: Re: [Proposal] Global temporary tables