XLOG_PAGE_MAGIC
是一个嵌入WAL文件头部的预处理器常量,用于定义其版本。
XLOG_PAGE_MAGIC
从PostgreSQL 7.0 开始出现(尽管它直到WAL 在PostgreSQL 7.1 中全面引入后才变得实用)。
源代码
XLOG_PAGE_MAGIC
在src/include/access/xlog_internal.h 中定义(在PostgreSQL 8.0 之前在src/include/access/xlog.h 中)。
用法和值
XLOG_PAGE_MAGIC
是一个两字节的常量,每次更改WAL 文件格式时都会递增。它与PostgreSQL版本号没有直接关联,但自PostgreSQL 8.0 以来每个稳定PostgreSQL版本发布时的值都高于之前稳定版本发布时的值,因此理论上可以根据XLOG_PAGE_MAGIC
的值确定WAL文件关联的PostgreSQL版本。请注意,PostgreSQL 7.3 和PostgreSQL 7.4 之间没有递增(请参见下表)。
PostgreSQL版本 | XLOG_PAGE_MAGIC | 提交 | 备注 |
---|---|---|---|
PostgreSQL 17 | 0xD115 | f83d7097 | 非最终版本 |
PostgreSQL 16 | 0xD113 | 6af17939 | |
PostgreSQL 15 | 0xD110 | 8b1dccd3 | |
PostgreSQL 14 | 0xD10D | 08aa89b3 | |
PostgreSQL 13 | 0xD106 | c6b92041 | |
PostgreSQL 12 | 0xD101 | b5f58cf2 | |
PostgreSQL 11 | 0xD098 | cf5a1890 | |
PostgreSQL 10 | 0xD097 | ea42cc18 | |
PostgreSQL 9.6 | 0xD093 | 65578341 | |
PostgreSQL 9.5 | 0xD087 | 6e8af376 | |
PostgreSQL 9.4 | 0xD07E | 8776faa8 | |
PostgreSQL 9.3 | 0xD075 | 0ab9d1c4 | |
PostgreSQL 9.2 | 0xD071 | 3424bff9 | |
PostgreSQL 9.1 | 0xD066 | d2bc1c99 | |
PostgreSQL 9.0 | 0xD064 | 9b8a7332 | |
PostgreSQL 8.4 | 0xD063 | cd004067 | |
PostgreSQL 8.3 | 0xD062 | a8d539f1 | |
PostgreSQL 8.2 | 0xD05E | 09b5271e | |
PostgreSQL 8.1 | 0xD05D | 21fda22e | |
PostgreSQL 8.0 | 0xD05C | 2042b342 | 已移动到src/include/access/xlog_internal.h(提交2042b342) |
PostgreSQL 7.4 | 0xD05A | n/a | 与PostgreSQL 7.3相同 |
PostgreSQL 7.3 | 0xD05A | c87469e6 | |
PostgreSQL 7.2 | 0xD059 | 7d4d5c00 | |
PostgreSQL 7.1 | 0xD058 | 1b87e24c | |
PostgreSQL 7.0 | 0x17345168 | 30659d43 | 实验性 |