Re: [Proposal] Global temporary tables
曾文旌 (义从) <wenjing.zwj@alibaba-inc.com>
From: 曾文旌(义从) <wenjing.zwj@alibaba-inc.com>
To: Prabhat Sahu <prabhat.sahu@enterprisedb.com>
Cc: "Robert Haas" <robertmhaas@gmail.com>, "tushar" <tushar.ahuja@enterprisedb.com>, "Pavel Stehule" <pavel.stehule@gmail.com>, "Tomas Vondra" <tomas.vondra@2ndquadrant.com>, "Konstantin Knizhnik" <k.knizhnik@postgrespro.ru>, "PostgreSQL Hackers" <pgsql-hackers@postgresql.org>, 蔡松露(子嘉) <zijia@taobao.com>, Cai, Le <le.cai@alibaba-inc.com>, 萧少聪(铁庵) <shaocong.xsc@alibaba-inc.com>
Date: 2020-03-09T16:28:12Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
PageAddItemExtended(): Add LP_UNUSED assertion.
- 30aaab26e521 14.0 cited
-
Remove temporary files after backend crash
- cd91de0d1795 14.0 cited
-
Fix comment in indexing.c
- 9fd2952cf492 14.0 cited
-
Fix failure to ignore leftover temp tables after a server crash.
- 6919b7e32947 9.3.0 cited
> 2020年3月9日 下午8:24,Prabhat Sahu <prabhat.sahu@enterprisedb.com> 写道: > > 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". I fixed the warning message, It's more accurate now. Wenjing > > > On Fri, Mar 6, 2020 at 12:41 PM 曾文旌(义从) <wenjing.zwj@alibaba-inc.com <mailto:wenjing.zwj@alibaba-inc.com>> wrote: > > > > 2020年3月5日 下午10:38,Robert Haas <robertmhaas@gmail.com <mailto:robertmhaas@gmail.com>> 写道: > > > > On Thu, Mar 5, 2020 at 9:19 AM tushar <tushar.ahuja@enterprisedb.com <mailto: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 <http://www.enterprisedb.com/> > > The Enterprise PostgreSQL Company > > > > > > -- > With Regards, > Prabhat Kumar Sahu > EnterpriseDB: http://www.enterprisedb.com <http://www.enterprisedb.com/>