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". On Fri, Mar 6, 2020 at 12:41 PM 曾文旌(义从) <wenjing....@alibaba-inc.com> wrote: > > > > 2020年3月5日 下午10:38,Robert Haas <robertmh...@gmail.com> 写道: > > > > On Thu, Mar 5, 2020 at 9:19 AM tushar <tushar.ah...@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