Re: [Proposal] Global temporary tables

Prabhat Sahu <prabhat.sahu@enterprisedb.com>

From: Prabhat Sahu <prabhat.sahu@enterprisedb.com>
To: 曾文旌(义从) <wenjing.zwj@alibaba-inc.com>
Cc: tushar <tushar.ahuja@enterprisedb.com>, Pavel Stehule <pavel.stehule@gmail.com>, Robert Haas <robertmhaas@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-04T07:49:13Z
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 →
  1. PageAddItemExtended(): Add LP_UNUSED assertion.

  2. Remove temporary files after backend crash

  3. Fix comment in indexing.c

  4. Fix failure to ignore leftover temp tables after a server crash.

On Tue, Mar 3, 2020 at 2:11 PM 曾文旌(义从) <wenjing.zwj@alibaba-inc.com> wrote:

>
>
>
> I fixed in global_temporary_table_v16-pg13.patch.
>

Thank you Wenjing for the patch.
Now we are getting corruption with GTT with below scenario.

postgres=# CREATE GLOBAL TEMPORARY TABLE gtt1(c1 bigint, c2 bigserial) on
commit delete rows;
CREATE TABLE
postgres=# CREATE GLOBAL TEMPORARY TABLE gtt2(c1 bigint, c2 bigserial) on
commit preserve rows;
CREATE TABLE
postgres=# \q

[edb@localhost bin]$ echo "1
> 2
> 3
> "> t.dat

[edb@localhost bin]$ ./psql  postgres
psql (13devel)
Type "help" for help.

postgres=# \copy gtt1(c1) from 't.dat' with  csv;
ERROR:  could not read block 0 in file "base/13585/t3_16384": read only 0
of 8192 bytes
CONTEXT:  COPY gtt1, line 1: "1"

postgres=# \copy gtt2(c1) from 't.dat' with  csv;
ERROR:  could not read block 0 in file "base/13585/t3_16390": read only 0
of 8192 bytes
CONTEXT:  COPY gtt2, line 1: "1"

NOTE: We end with such corruption for "bigserial/smallserial/serial"
datatype columns.

-- 

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