内容

XLogRecPtr

一种数据类型,表示指向当前WAL 文件中某个位置的指针。

XLogRecPtr 是一种数据类型,表示指向当前WAL 文件中某个位置的指针。

PostgreSQL 9.3 开始,XLogRecPtr 是一个无符号的 64 位整数,在include/access/xlogdefs.h 中定义。

/*
 * Pointer to a location in the XLOG.  These pointers are 64 bits wide,
 * because we don't want them ever to overflow.
 */
typedef uint64 XLogRecPtr;

PostgreSQL 9.2 及更早版本中,XLogRecPtr 是一个结构体由两个 32 位整数组成。

typedef struct XLogRecPtr
{
	uint32		xlogid;			/* log file #, 0 based */
	uint32		xrecoff;		/* byte offset of location in log file */
} XLogRecPtr;

在外部,XLogRecPtr 显示为一个LSN,由两个最多 8 个十六进制数字的集合组成,并用斜杠分隔,例如:

postgres=# SELECT pg_last_wal_receive_lsn();
 pg_last_wal_receive_lsn 
-------------------------
 0/40043D8
(1 row)

PostgreSQL 9.4 开始,一个离散数据类型pg_lsn被引入来表示LSN

无效的 XLogRecPtr 在 9.3 或更高版本中表示为零(常量InvalidXLogRecPtr);在 9.2 和更早版本中,xrecoff值设置为零。在这两种情况下,宏XLogRecPtrIsInvalid()可以用来检查 XLogRecPtr 的有效性。

分类

PostgreSQL 内部

反馈

提交任何关于 "XLogRecPtr" 的评论、建议或更正 此处