Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  gistxlog.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * gistxlog.h
 *   gist xlog routines
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/access/gistxlog.h
 *
 *-------------------------------------------------------------------------
 */

#ifndef GIST_XLOG_H
#define GIST_XLOG_H

#include "access/gist.h"
#include "access/xlogreader.h"
#include "lib/stringinfo.h"

#define XLOG_GIST_PAGE_UPDATE  0x00
#define XLOG_GIST_DELETE   0x10 /* delete leaf index tuples for a
 * page */

#define XLOG_GIST_PAGE_REUSE  0x20 /* old page is about to be reused
 * from FSM */

#define XLOG_GIST_PAGE_SPLIT  0x30
 /* #define XLOG_GIST_INSERT_COMPLETE  0x40 */ /* not used anymore */
 /* #define XLOG_GIST_CREATE_INDEX  0x50 */ /* not used anymore */
#define XLOG_GIST_PAGE_DELETE  0x60
#define XLOG_GIST_ASSIGN_LSN  0x70 /* nop, assign new LSN */

/*
 * 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: Leaf page, whose index tuples are deleted.
 */

typedef struct gistxlogDelete
{
 TransactionId snapshotConflictHorizon;
 uint16  ntodelete;  /* number of deleted offsets */
 bool  isCatalogRel; /* to handle recovery conflict during logical
 * decoding on standby */


 /* TODELETE OFFSET NUMBERS */
 OffsetNumber offsets[FLEXIBLE_ARRAY_MEMBER];
} gistxlogDelete;

#define SizeOfGistxlogDelete offsetof(gistxlogDelete, offsets)

/*
 * 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 split 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;

/*
 * Backup Blk 0: page that was deleted.
 * Backup Blk 1: parent page, containing the downlink to the deleted page.
 */

typedef struct gistxlogPageDelete
{
 FullTransactionId deleteXid; /* last Xid which could see page in scan */
 OffsetNumber downlinkOffset; /* Offset of downlink referencing this
 * page */

} gistxlogPageDelete;

#define SizeOfGistxlogPageDelete (offsetof(gistxlogPageDelete, downlinkOffset) + sizeof(OffsetNumber))


/*
 * This is what we need to know about page reuse, for hot standby.
 */

typedef struct gistxlogPageReuse
{
 RelFileLocator locator;
 BlockNumber block;
 FullTransactionId snapshotConflictHorizon;
 bool  isCatalogRel; /* to handle recovery conflict during logical
 * decoding on standby */

} gistxlogPageReuse;

#define SizeOfGistxlogPageReuse (offsetof(gistxlogPageReuse, isCatalogRel) + sizeof(bool))

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);

#endif

Messung V0.5 in Prozent
C=82 H=99 G=90

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002