diff options
author | Andres Freund <andres@anarazel.de> | 2019-04-22 14:28:30 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2019-04-22 14:28:30 -0700 |
commit | b5f58cf213bdab7e726f7b09c1137b4ea397fc0b (patch) | |
tree | c0c01cb5a8ad7baa64e5ada9515de704c3f434de /src/backend/access/rmgrdesc/gistdesc.c | |
parent | b804c1837b55722369d30be707738c098a75cd7a (diff) | |
download | postgresql-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.c | 7 |
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); |