]> granicus.if.org Git - postgresql/commitdiff
Fix misleading output from gin_desc().
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Apr 2012 22:10:35 +0000 (18:10 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Apr 2012 22:10:35 +0000 (18:10 -0400)
XLOG_GIN_UPDATE_META_PAGE and XLOG_GIN_DELETE_LISTPAGE records were printed
with a list link field labeled as "blkno", which was confusing, especially
when the link was empty (InvalidBlockNumber).  Print the metapage block
number instead, since that's what's actually being updated.  We could
include the link values too as a separate field, but not clear it's worth
the trouble.

Back-patch to 8.4 where the dubious code was added.

src/backend/access/gin/ginxlog.c

index 327d7c009d67b43410d584fdbc2556bc071980b1..f2d82810f3e4a431bfc85276c48bf09401edf2f7 100644 (file)
@@ -747,9 +747,7 @@ gin_desc(StringInfo buf, uint8 xl_info, char *rec)
                                                         (((ginxlogInsert *) rec)->isData) ? 'T' : 'F',
                                                         (((ginxlogInsert *) rec)->isLeaf) ? 'T' : 'F',
                                                         (((ginxlogInsert *) rec)->isDelete) ? 'T' : 'F',
-                                                        ((ginxlogInsert *) rec)->updateBlkno
-                               );
-
+                                                        ((ginxlogInsert *) rec)->updateBlkno);
                        break;
                case XLOG_GIN_SPLIT:
                        appendStringInfo(buf, "Page split, ");
@@ -766,7 +764,7 @@ gin_desc(StringInfo buf, uint8 xl_info, char *rec)
                        break;
                case XLOG_GIN_UPDATE_META_PAGE:
                        appendStringInfo(buf, "Update metapage, ");
-                       desc_node(buf, ((ginxlogUpdateMeta *) rec)->node, ((ginxlogUpdateMeta *) rec)->metadata.tail);
+                       desc_node(buf, ((ginxlogUpdateMeta *) rec)->node, GIN_METAPAGE_BLKNO);
                        break;
                case XLOG_GIN_INSERT_LISTPAGE:
                        appendStringInfo(buf, "Insert new list page, ");
@@ -774,7 +772,7 @@ gin_desc(StringInfo buf, uint8 xl_info, char *rec)
                        break;
                case XLOG_GIN_DELETE_LISTPAGE:
                        appendStringInfo(buf, "Delete list pages (%d), ", ((ginxlogDeleteListPages *) rec)->ndeleted);
-                       desc_node(buf, ((ginxlogDeleteListPages *) rec)->node, ((ginxlogDeleteListPages *) rec)->metadata.head);
+                       desc_node(buf, ((ginxlogDeleteListPages *) rec)->node, GIN_METAPAGE_BLKNO);
                        break;
                default:
                        elog(PANIC, "gin_desc: unknown op code %u", info);