Re: [Proposal] Global temporary tables
От | Prabhat Sahu |
---|---|
Тема | Re: [Proposal] Global temporary tables |
Дата | |
Msg-id | CANEvxProkLp=BhOR2bZS-yVxp796xKaTv09kObR60DL4Cn5UfA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [Proposal] Global temporary tables ("曾文旌(义从)" <wenjing.zwj@alibaba-inc.com>) |
Ответы |
Re: [Proposal] Global temporary tables
|
Список | pgsql-hackers |
Hi All,
Kindly check the below scenario.
Case 1:
postgres=# CREATE GLOBAL TEMPORARY TABLE gtt1(c1 int) on commit delete rows;
CREATE TABLE
postgres=# CREATE GLOBAL TEMPORARY TABLE gtt2(c1 int) on commit preserve rows;
CREATE TABLE
postgres=# vacuum gtt1;
VACUUM
postgres=# vacuum gtt2;
VACUUM
postgres=# vacuum;
VACUUM
postgres=# \q
Case 2: Exit and reconnect to psql prompt.
[edb@localhost bin]$ ./psql postgres
psql (13devel)
Type "help" for help.
postgres=# vacuum gtt1;
WARNING: skipping vacuum empty global temp table "gtt1"
VACUUM
postgres=# vacuum gtt2;
WARNING: skipping vacuum empty global temp table "gtt2"
VACUUM
postgres=# vacuum;
WARNING: skipping vacuum empty global temp table "gtt1"
WARNING: skipping vacuum empty global temp table "gtt2"
VACUUM
Although in "Case1" the gtt1/gtt2 are empty, we are not getting "WARNING: skipping vacuum empty global temp table" for VACUUM in "Case 1".
whereas we are getting the "WARNING" for VACUUM in "Case2".
postgres=# CREATE GLOBAL TEMPORARY TABLE gtt1(c1 int) on commit delete rows;
CREATE TABLE
postgres=# CREATE GLOBAL TEMPORARY TABLE gtt2(c1 int) on commit preserve rows;
CREATE TABLE
postgres=# vacuum gtt1;
VACUUM
postgres=# vacuum gtt2;
VACUUM
postgres=# vacuum;
VACUUM
postgres=# \q
Case 2: Exit and reconnect to psql prompt.
[edb@localhost bin]$ ./psql postgres
psql (13devel)
Type "help" for help.
postgres=# vacuum gtt1;
WARNING: skipping vacuum empty global temp table "gtt1"
VACUUM
postgres=# vacuum gtt2;
WARNING: skipping vacuum empty global temp table "gtt2"
VACUUM
postgres=# vacuum;
WARNING: skipping vacuum empty global temp table "gtt1"
WARNING: skipping vacuum empty global temp table "gtt2"
VACUUM
Although in "Case1" the gtt1/gtt2 are empty, we are not getting "WARNING: skipping vacuum empty global temp table" for VACUUM in "Case 1".
whereas we are getting the "WARNING" for VACUUM in "Case2".
On Fri, Mar 6, 2020 at 12:41 PM 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> wrote:
> 2020年3月5日 下午10:38,Robert Haas <robertmhaas@gmail.com> 写道:
>
> On Thu, Mar 5, 2020 at 9:19 AM tushar <tushar.ahuja@enterprisedb.com> wrote:
>> WARNING: relfilenode 13589/1663/19063 not exist in gtt shared hash when forget
>> ERROR: out of shared memory
>> HINT: You might need to increase max_active_gtt.
>>
>> also , would be great if we can make this error message user friendly like - "max connection reached" rather than memory error
>
> That would be nice, but the bigger problem is that the WARNING there
> looks totally unacceptable. It's looks like it's complaining of some
> internal issue (i.e. a bug or corruption) and the grammar is poor,
> too.
Yes, WARNING should not exist.
This is a bug in the rollback process and I have fixed it in global_temporary_table_v17-pg13.patch
Wenjing
>
> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
With Regards,
Prabhat Kumar Sahu
EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: