Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data

Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>

From: Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Andrey Borodin <x4mmm@yandex-team.ru>, Andres Freund <andres@anarazel.de>, Noah Misch <noah@leadboat.com>, CM Team <cm@enterprisedb.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Geoghegan <pg@bowt.ie>, Semab Tariq <semab.tariq@enterprisedb.com>
Date: 2021-11-02T00:50:42Z
Lists: pgsql-bugs
On Mon, Nov 1, 2021 at 7:47 PM Robert Haas <robertmhaas@gmail.com> wrote:

> On Mon, Nov 1, 2021 at 9:33 AM Sandeep Thakkar
> <sandeep.thakkar@enterprisedb.com> wrote:
> > (gdb) p tupdesc1->attrs[1]
> > No symbol "tupdesc1" in current context.
> > (gdb) p tupdesc1->attrs[2]
> > No symbol "tupdesc1" in current context.
> > (gdb) p tupdesc2->attrs[0]
> > No symbol "tupdesc2" in current context.
> > (gdb) p tupdesc2->attrs[1]
> > No symbol "tupdesc2" in current context.
> > (gdb)
>
> I think you need to select stack frame 1 before running these
> commands. I believe just running "frame 1" before you run these print
> commands should do the trick.
>
> Thanks Robert, that worked. Here is the output:

(gdb) frame 1

#1  0x40000000003fdc00:0 in equalTupleDescs (tupdesc1=0x60000000001f65e0,

    tupdesc2=0x60000000001fba08)

(gdb) p tupdesc1->attrs[0]

$1 = {attrelid = 27272, attname = {

    data = "initial", '\000' <repeats 56 times>}, atttypid = 23,

  attstattarget = -1, attlen = 4, attnum = 1, attndims = 0, attcacheoff = 0,


  atttypmod = -1, attbyval = true, attalign = 105 'i', attstorage = 112 'p',


  attcompression = 0 '\000', attnotnull = false, atthasdef = false,

  atthasmissing = false, attidentity = 0 '\000', attgenerated = 0 '\000',

  attisdropped = false, attislocal = true, attinhcount = 0, attcollation =
0}

(gdb) p tupdesc1->attrs[1]

$2 = {attrelid = 27272, attname = {data = "a", '\000' <repeats 62 times>},

  atttypid = 23, attstattarget = -1, attlen = 4, attnum = 2, attndims = 0,

  attcacheoff = -1, atttypmod = -1, attbyval = true, attalign = 105 'i',

  attstorage = 112 'p', attcompression = 0 '\000', attnotnull = false,

  atthasdef = true, atthasmissing = true, attidentity = 0 '\000',

  attgenerated = 0 '\000', attisdropped = false, attislocal = true,

  attinhcount = 0, attcollation = 0}

(gdb) p tupdesc1->attrs[2]

$3 = {attrelid = 27272, attname = {data = "b", '\000' <repeats 62 times>},

  atttypid = 19, attstattarget = -1, attlen = 64, attnum = 3, attndims = 0,

  attcacheoff = -1, atttypmod = -1, attbyval = false, attalign = 99 'c',

  attstorage = 112 'p', attcompression = 0 '\000', attnotnull = false,

  atthasdef = false, atthasmissing = false, attidentity = 0 '\000',

  attgenerated = 0 '\000', attisdropped = false, attislocal = true,

  attinhcount = 0, attcollation = 950}

(gdb) p tupdesc2->attrs[0]

$4 = {attrelid = 27272, attname = {

    data = "initial", '\000' <repeats 56 times>}, atttypid = 23,

  attstattarget = -1, attlen = 4, attnum = 1, attndims = 0, attcacheoff = 0,


  atttypmod = -1, attbyval = true, attalign = 105 'i', attstorage = 112 'p',


  attcompression = 0 '\000', attnotnull = false, atthasdef = false,

  atthasmissing = false, attidentity = 0 '\000', attgenerated = 0 '\000',

  attisdropped = false, attislocal = true, attinhcount = 0, attcollation =
0}

(gdb) p tupdesc2->attrs[1]

$5 = {attrelid = 27272, attname = {data = "a", '\000' <repeats 62 times>},

  atttypid = 23, attstattarget = -1, attlen = 4, attnum = 2, attndims = 0,

  attcacheoff = -1, atttypmod = -1, attbyval = true, attalign = 105 'i',

  attstorage = 112 'p', attcompression = 0 '\000', attnotnull = false,

  atthasdef = true, atthasmissing = true, attidentity = 0 '\000',

  attgenerated = 0 '\000', attisdropped = false, attislocal = true,

  attinhcount = 0, attcollation = 0}

(gdb) p tupdesc2->attrs[2]

$6 = {attrelid = 27272, attname = {data = "b", '\000' <repeats 62 times>},

  atttypid = 19, attstattarget = -1, attlen = 64, attnum = 3, attndims = 0,

  attcacheoff = -1, atttypmod = -1, attbyval = false, attalign = 99 'c',

  attstorage = 112 'p', attcompression = 0 '\000', attnotnull = false,

  atthasdef = false, atthasmissing = false, attidentity = 0 '\000',

  attgenerated = 0 '\000', attisdropped = false, attislocal = true,

  attinhcount = 0, attcollation = 950}

> (gdb)



>

-- 
> Robert Haas
> EDB: http://www.enterprisedb.com
>


-- 
Sandeep Thakkar

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Improve contrib/amcheck's tests for CREATE INDEX CONCURRENTLY.

  2. Fix minor memory leaks in pg_dump.

  3. Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY.

  4. Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions.

  5. Add -w back to the flags for pg_ctl (re)start in PostgresNode

  6. Fix CREATE INDEX CONCURRENTLY for simultaneous prepared transactions.