On Tue, Jul 21, 2015 at 6:54 AM, Vignesh Raghunathan
<vignesh.pg...@gmail.com> wrote:
> Hello,
>
> It has been mentioned in Section 63.6 that the first two fields in
> PageHeaderData track the most recent WAL entry related to the page. However,
> I am not sure how pd_checksum is related to WAL. Could it be possible that
> the sentence has been carried over from previous versions of the
> documentations without considering the change to the second field in
> PageHeaderData?

Yes, the documentation is mistaken. The two bytes of pd_tli have been
switched to pd_checksum in 9.3, hence only the first field is relevant
for WAL, aka pd_lsn. Looking at this portion of the docs I think that
it should be updated as attached, mentioning pd_checksum as well.
-- 
Michael
diff --git a/doc/src/sgml/storage.sgml b/doc/src/sgml/storage.sgml
index e5b7b4b..073fe2b 100644
--- a/doc/src/sgml/storage.sgml
+++ b/doc/src/sgml/storage.sgml
@@ -758,18 +758,18 @@ data. Empty in ordinary tables.</entry>
  <para>
 
   The first 24 bytes of each page consists of a page header
-  (PageHeaderData). Its format is detailed in <xref
-  linkend="pageheaderdata-table">. The first two fields track the most
-  recent WAL entry related to this page. Next is a 2-byte field
-  containing flag bits. This is followed by three 2-byte integer fields
-  (<structfield>pd_lower</structfield>, <structfield>pd_upper</structfield>,
-  and <structfield>pd_special</structfield>). These contain byte offsets
-  from the page start to the start
-  of unallocated space, to the end of unallocated space, and to the start of
-  the special space.
-  The next 2 bytes of the page header,
-  <structfield>pd_pagesize_version</structfield>, store both the page size
-  and a version indicator.  Beginning with
+  (<structname>PageHeaderData</>). Its format is detailed in <xref
+  linkend="pageheaderdata-table">. The first field tracks the most
+  recent WAL entry related to this page. The second field contains
+  the page checksum if <xref linkend="app-initdb-data-checksums"> are
+  enabled.  Next is a 2-byte field containing flag bits. This is followed
+  by three 2-byte integer fields (<structfield>pd_lower</structfield>,
+  <structfield>pd_upper</structfield>, and
+  <structfield>pd_special</structfield>).  These contain byte offsets
+  from the page start to the start of unallocated space, to the end of
+  unallocated space, and to the start of the special space.  The next 2
+  bytes of the page header, <structfield>pd_pagesize_version</structfield>,
+  store both the page size and a version indicator.  Beginning with
   <productname>PostgreSQL</productname> 8.3 the version number is 4;
   <productname>PostgreSQL</productname> 8.1 and 8.2 used version number 3;
   <productname>PostgreSQL</productname> 8.0 used version number 2;
-- 
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs

Reply via email to