]> granicus.if.org Git - postgresql/blobdiff - src/include/access/gist_private.h
Allow index AMs to return either HeapTuple or IndexTuple format during IOS.
[postgresql] / src / include / access / gist_private.h
index 873c52a1a220de8c139365131bc341bc1706996c..1ad4ed6da7518ff07ad6ee83e0636cf356a17e6f 100644 (file)
@@ -17,7 +17,6 @@
 #include "access/amapi.h"
 #include "access/gist.h"
 #include "access/itup.h"
-#include "access/xlogreader.h"
 #include "fmgr.h"
 #include "lib/pairingheap.h"
 #include "storage/bufmgr.h"
@@ -120,7 +119,7 @@ typedef struct GISTSearchHeapItem
        ItemPointerData heapPtr;
        bool            recheck;                /* T if quals must be rechecked */
        bool            recheckDistances;               /* T if distances must be rechecked */
-       IndexTuple      ftup;                   /* data fetched back from the index, used in
+       HeapTuple       recontup;               /* data reconstructed from the index, used in
                                                                 * index-only scans */
        OffsetNumber offnum;            /* track offset in page to mark tuple as
                                                                 * LP_DEAD */
@@ -177,51 +176,7 @@ typedef struct GISTScanOpaqueData
 
 typedef GISTScanOpaqueData *GISTScanOpaque;
 
-
-/* XLog stuff */
-
-#define XLOG_GIST_PAGE_UPDATE          0x00
- /* #define XLOG_GIST_NEW_ROOT                  0x20 */        /* not used anymore */
-#define XLOG_GIST_PAGE_SPLIT           0x30
- /* #define XLOG_GIST_INSERT_COMPLETE   0x40 */        /* not used anymore */
-#define XLOG_GIST_CREATE_INDEX         0x50
- /* #define XLOG_GIST_PAGE_DELETE               0x60 */        /* not used anymore */
-
-/*
- * Backup Blk 0: updated page.
- * Backup Blk 1: If this operation completes a page split, by inserting a
- *                              downlink for the split page, the left half of the split
- */
-typedef struct gistxlogPageUpdate
-{
-       /* number of deleted offsets */
-       uint16          ntodelete;
-       uint16          ntoinsert;
-
-       /*
-        * In payload of blk 0 : 1. todelete OffsetNumbers 2. tuples to insert
-        */
-} gistxlogPageUpdate;
-
-/*
- * Backup Blk 0: If this operation completes a page split, by inserting a
- *                              downlink for the split page, the left half of the split
- * Backup Blk 1 - npage: split pages (1 is the original page)
- */
-typedef struct gistxlogPageSplit
-{
-       BlockNumber origrlink;          /* rightlink of the page before split */
-       GistNSN         orignsn;                /* NSN of the page before split */
-       bool            origleaf;               /* was splitted page a leaf page? */
-
-       uint16          npage;                  /* # of pages in the split */
-       bool            markfollowright;        /* set F_FOLLOW_RIGHT flags */
-
-       /*
-        * follow: 1. gistxlogPage and array of IndexTupleData per page
-        */
-} gistxlogPageSplit;
-
+/* despite the name, gistxlogPage is not part of any xlog record */
 typedef struct gistxlogPage
 {
        BlockNumber blkno;
@@ -454,14 +409,6 @@ extern bool gistplacetopage(Relation rel, Size freespace, GISTSTATE *giststate,
 extern SplitedPageLayout *gistSplit(Relation r, Page page, IndexTuple *itup,
                  int len, GISTSTATE *giststate);
 
-/* gistxlog.c */
-extern void gist_redo(XLogReaderState *record);
-extern void gist_desc(StringInfo buf, XLogReaderState *record);
-extern const char *gist_identify(uint8 info);
-extern void gist_xlog_startup(void);
-extern void gist_xlog_cleanup(void);
-extern void gist_mask(char *pagedata, BlockNumber blkno);
-
 extern XLogRecPtr gistXLogUpdate(Buffer buffer,
                           OffsetNumber *todelete, int ntodelete,
                           IndexTuple *itup, int ntup,
@@ -530,7 +477,7 @@ extern void gistMakeUnionItVec(GISTSTATE *giststate, IndexTuple *itvec, int len,
 extern bool gistKeyIsEQ(GISTSTATE *giststate, int attno, Datum a, Datum b);
 extern void gistDeCompressAtt(GISTSTATE *giststate, Relation r, IndexTuple tuple, Page p,
                                  OffsetNumber o, GISTENTRY *attdata, bool *isnull);
-extern IndexTuple gistFetchTuple(GISTSTATE *giststate, Relation r,
+extern HeapTuple gistFetchTuple(GISTSTATE *giststate, Relation r,
                           IndexTuple tuple);
 extern void gistMakeUnionKey(GISTSTATE *giststate, int attno,
                                 GISTENTRY *entry1, bool isnull1,