aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/rmgrdesc/gistdesc.c
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2019-04-22 14:28:30 -0700
committerAndres Freund <andres@anarazel.de>2019-04-22 14:28:30 -0700
commitb5f58cf213bdab7e726f7b09c1137b4ea397fc0b (patch)
treec0c01cb5a8ad7baa64e5ada9515de704c3f434de /src/backend/access/rmgrdesc/gistdesc.c
parentb804c1837b55722369d30be707738c098a75cd7a (diff)
downloadpostgresql-b5f58cf213bdab7e726f7b09c1137b4ea397fc0b.tar.gz
postgresql-b5f58cf213bdab7e726f7b09c1137b4ea397fc0b.zip
Convert gist to compute page level xid horizon on primary.
Due to parallel development, gist added the missing conflict information in c952eae52a3, while 558a9165e08 moved that computation to the primary for the index types that already had it. Thus adapt gist to also compute on the primary, using index_compute_xid_horizon_for_tuples() instead of its own copy of the logic. This also adds pg_waldump support for XLOG_GIST_DELETE records, which previously was not properly present. Bumps WAL version. Author: Andres Freund Discussion: https://postgr.es/m/20190406050243.bszosdg4buvabfrt@alap3.anarazel.de
Diffstat (limited to 'src/backend/access/rmgrdesc/gistdesc.c')
-rw-r--r--src/backend/access/rmgrdesc/gistdesc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/access/rmgrdesc/gistdesc.c b/src/backend/access/rmgrdesc/gistdesc.c
index eb308c72d6b..767864b58e6 100644
--- a/src/backend/access/rmgrdesc/gistdesc.c
+++ b/src/backend/access/rmgrdesc/gistdesc.c
@@ -33,8 +33,11 @@ out_gistxlogPageReuse(StringInfo buf, gistxlogPageReuse *xlrec)
}
static void
-out_gistxlogDelete(StringInfo buf, gistxlogPageUpdate *xlrec)
+out_gistxlogDelete(StringInfo buf, gistxlogDelete *xlrec)
{
+ appendStringInfo(buf, "delete: latestRemovedXid %u, nitems: %u",
+ xlrec->latestRemovedXid, xlrec->ntodelete);
+
}
static void
@@ -66,7 +69,7 @@ gist_desc(StringInfo buf, XLogReaderState *record)
out_gistxlogPageReuse(buf, (gistxlogPageReuse *) rec);
break;
case XLOG_GIST_DELETE:
- out_gistxlogDelete(buf, (gistxlogPageUpdate *) rec);
+ out_gistxlogDelete(buf, (gistxlogDelete *) rec);
break;
case XLOG_GIST_PAGE_SPLIT:
out_gistxlogPageSplit(buf, (gistxlogPageSplit *) rec);