2016-04-01 11:21:48 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* generic_xlog.h
|
|
|
|
* Generic xlog API definition.
|
|
|
|
*
|
|
|
|
*
|
2023-01-02 21:00:37 +01:00
|
|
|
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
2016-04-01 11:21:48 +02:00
|
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
|
|
*
|
|
|
|
* src/include/access/generic_xlog.h
|
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
#ifndef GENERIC_XLOG_H
|
|
|
|
#define GENERIC_XLOG_H
|
|
|
|
|
|
|
|
#include "access/xlog.h"
|
|
|
|
#include "access/xlog_internal.h"
|
|
|
|
#include "access/xloginsert.h"
|
|
|
|
#include "storage/bufpage.h"
|
|
|
|
#include "utils/rel.h"
|
|
|
|
|
|
|
|
#define MAX_GENERIC_XLOG_PAGES XLR_NORMAL_MAX_BLOCK_ID
|
|
|
|
|
2016-04-12 17:42:06 +02:00
|
|
|
/* Flag bits for GenericXLogRegisterBuffer */
|
|
|
|
#define GENERIC_XLOG_FULL_IMAGE 0x0001 /* write full-page image */
|
|
|
|
|
2016-04-01 11:21:48 +02:00
|
|
|
/* state of generic xlog record construction */
|
|
|
|
struct GenericXLogState;
|
|
|
|
typedef struct GenericXLogState GenericXLogState;
|
|
|
|
|
|
|
|
/* API for construction of generic xlog records */
|
|
|
|
extern GenericXLogState *GenericXLogStart(Relation relation);
|
2016-04-12 17:42:06 +02:00
|
|
|
extern Page GenericXLogRegisterBuffer(GenericXLogState *state, Buffer buffer,
|
|
|
|
int flags);
|
2016-04-01 11:21:48 +02:00
|
|
|
extern XLogRecPtr GenericXLogFinish(GenericXLogState *state);
|
|
|
|
extern void GenericXLogAbort(GenericXLogState *state);
|
|
|
|
|
|
|
|
/* functions defined for rmgr */
|
|
|
|
extern void generic_redo(XLogReaderState *record);
|
|
|
|
extern const char *generic_identify(uint8 info);
|
|
|
|
extern void generic_desc(StringInfo buf, XLogReaderState *record);
|
2022-09-20 04:18:36 +02:00
|
|
|
extern void generic_mask(char *page, BlockNumber blkno);
|
2016-04-01 11:21:48 +02:00
|
|
|
|
|
|
|
#endif /* GENERIC_XLOG_H */
|