目录

XLogRecPtr

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

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

截至PostgreSQL 9.3XLogRecPtr 是一个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

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

分类

PostgreSQL内部

反馈

提交您对“XLogRecPtr”的任何评论、建议或更正,请在此处提交