LCOV - code coverage report
Current view: top level - src/backend/access/rmgrdesc - gistdesc.c (source / functions) Hit Total Coverage
Test: PostgreSQL 17devel Lines: 0 65 0.0 %
Date: 2023-12-05 07:10:55 Functions: 0 7 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*-------------------------------------------------------------------------
       2             :  *
       3             :  * gistdesc.c
       4             :  *    rmgr descriptor routines for access/gist/gistxlog.c
       5             :  *
       6             :  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
       7             :  * Portions Copyright (c) 1994, Regents of the University of California
       8             :  *
       9             :  *
      10             :  * IDENTIFICATION
      11             :  *    src/backend/access/rmgrdesc/gistdesc.c
      12             :  *
      13             :  *-------------------------------------------------------------------------
      14             :  */
      15             : #include "postgres.h"
      16             : 
      17             : #include "access/gistxlog.h"
      18             : #include "lib/stringinfo.h"
      19             : #include "storage/relfilelocator.h"
      20             : 
      21             : static void
      22           0 : out_gistxlogPageUpdate(StringInfo buf, gistxlogPageUpdate *xlrec)
      23             : {
      24           0 : }
      25             : 
      26             : static void
      27           0 : out_gistxlogPageReuse(StringInfo buf, gistxlogPageReuse *xlrec)
      28             : {
      29           0 :     appendStringInfo(buf, "rel %u/%u/%u; blk %u; snapshotConflictHorizon %u:%u",
      30             :                      xlrec->locator.spcOid, xlrec->locator.dbOid,
      31             :                      xlrec->locator.relNumber, xlrec->block,
      32           0 :                      EpochFromFullTransactionId(xlrec->snapshotConflictHorizon),
      33           0 :                      XidFromFullTransactionId(xlrec->snapshotConflictHorizon));
      34           0 : }
      35             : 
      36             : static void
      37           0 : out_gistxlogDelete(StringInfo buf, gistxlogDelete *xlrec)
      38             : {
      39           0 :     appendStringInfo(buf, "delete: snapshotConflictHorizon %u, nitems: %u",
      40           0 :                      xlrec->snapshotConflictHorizon, xlrec->ntodelete);
      41           0 : }
      42             : 
      43             : static void
      44           0 : out_gistxlogPageSplit(StringInfo buf, gistxlogPageSplit *xlrec)
      45             : {
      46           0 :     appendStringInfo(buf, "page_split: splits to %d pages",
      47           0 :                      xlrec->npage);
      48           0 : }
      49             : 
      50             : static void
      51           0 : out_gistxlogPageDelete(StringInfo buf, gistxlogPageDelete *xlrec)
      52             : {
      53           0 :     appendStringInfo(buf, "deleteXid %u:%u; downlink %u",
      54           0 :                      EpochFromFullTransactionId(xlrec->deleteXid),
      55           0 :                      XidFromFullTransactionId(xlrec->deleteXid),
      56           0 :                      xlrec->downlinkOffset);
      57           0 : }
      58             : 
      59             : void
      60           0 : gist_desc(StringInfo buf, XLogReaderState *record)
      61             : {
      62           0 :     char       *rec = XLogRecGetData(record);
      63           0 :     uint8       info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
      64             : 
      65           0 :     switch (info)
      66             :     {
      67           0 :         case XLOG_GIST_PAGE_UPDATE:
      68           0 :             out_gistxlogPageUpdate(buf, (gistxlogPageUpdate *) rec);
      69           0 :             break;
      70           0 :         case XLOG_GIST_PAGE_REUSE:
      71           0 :             out_gistxlogPageReuse(buf, (gistxlogPageReuse *) rec);
      72           0 :             break;
      73           0 :         case XLOG_GIST_DELETE:
      74           0 :             out_gistxlogDelete(buf, (gistxlogDelete *) rec);
      75           0 :             break;
      76           0 :         case XLOG_GIST_PAGE_SPLIT:
      77           0 :             out_gistxlogPageSplit(buf, (gistxlogPageSplit *) rec);
      78           0 :             break;
      79           0 :         case XLOG_GIST_PAGE_DELETE:
      80           0 :             out_gistxlogPageDelete(buf, (gistxlogPageDelete *) rec);
      81           0 :             break;
      82           0 :         case XLOG_GIST_ASSIGN_LSN:
      83             :             /* No details to write out */
      84           0 :             break;
      85             :     }
      86           0 : }
      87             : 
      88             : const char *
      89           0 : gist_identify(uint8 info)
      90             : {
      91           0 :     const char *id = NULL;
      92             : 
      93           0 :     switch (info & ~XLR_INFO_MASK)
      94             :     {
      95           0 :         case XLOG_GIST_PAGE_UPDATE:
      96           0 :             id = "PAGE_UPDATE";
      97           0 :             break;
      98           0 :         case XLOG_GIST_DELETE:
      99           0 :             id = "DELETE";
     100           0 :             break;
     101           0 :         case XLOG_GIST_PAGE_REUSE:
     102           0 :             id = "PAGE_REUSE";
     103           0 :             break;
     104           0 :         case XLOG_GIST_PAGE_SPLIT:
     105           0 :             id = "PAGE_SPLIT";
     106           0 :             break;
     107           0 :         case XLOG_GIST_PAGE_DELETE:
     108           0 :             id = "PAGE_DELETE";
     109           0 :             break;
     110           0 :         case XLOG_GIST_ASSIGN_LSN:
     111           0 :             id = "ASSIGN_LSN";
     112           0 :             break;
     113             :     }
     114             : 
     115           0 :     return id;
     116             : }

Generated by: LCOV version 1.14