1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*
- * timeline.h
- *
- * Functions for reading and writing timeline history files.
- *
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * src/include/access/timeline.h
- */
- #ifndef TIMELINE_H
- #define TIMELINE_H
- #include "access/xlogdefs.h"
- #include "nodes/pg_list.h"
- /*
- * A list of these structs describes the timeline history of the server. Each
- * TimeLineHistoryEntry represents a piece of WAL belonging to the history,
- * from newest to oldest. All WAL locations between 'begin' and 'end' belong to
- * the timeline represented by the entry. Together the 'begin' and 'end'
- * pointers of all the entries form a contiguous line from beginning of time
- * to infinity.
- */
- typedef struct
- {
- TimeLineID tli;
- XLogRecPtr begin; /* inclusive */
- XLogRecPtr end; /* exclusive, InvalidXLogRecPtr means infinity */
- } TimeLineHistoryEntry;
- extern List *readTimeLineHistory(TimeLineID targetTLI);
- extern bool existsTimeLineHistory(TimeLineID probeTLI);
- extern TimeLineID findNewestTimeLine(TimeLineID startTLI);
- extern void writeTimeLineHistory(TimeLineID newTLI, TimeLineID parentTLI,
- XLogRecPtr switchpoint, char *reason);
- extern void writeTimeLineHistoryFile(TimeLineID tli, char *content, int size);
- extern void restoreTimeLineHistoryFiles(TimeLineID begin, TimeLineID end);
- extern bool tliInHistory(TimeLineID tli, List *expectedTLEs);
- extern TimeLineID tliOfPointInHistory(XLogRecPtr ptr, List *history);
- extern XLogRecPtr tliSwitchPoint(TimeLineID tli, List *history,
- TimeLineID *nextTLI);
- #endif /* TIMELINE_H */
|