From c41928b1f93ccc07822361c62a7542d54a6d63c7 Mon Sep 17 00:00:00 2001 From: David Christensen Date: Fri, 19 Jan 2024 11:33:09 -0500 Subject: [PATCH v3 26/28] doc: update bufpage docs w/reserved space data --- src/include/storage/bufpage.h | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h index a233049b70..bc451f9232 100644 --- a/src/include/storage/bufpage.h +++ b/src/include/storage/bufpage.h @@ -37,10 +37,10 @@ * | v pd_upper | * +-------------+------------------------------------+ * | | tupleN ... | - * +-------------+------------------+-----------------+ - * | ... tuple3 tuple2 tuple1 | "special space" | - * +--------------------------------+-----------------+ - * ^ pd_special + * +-------------+------------------------+-----------+ + * | ... tuple3 tuple2 tuple1 | "special" | reserved | + * +--------------------------+-----------------------+ + * ^ pd_special * * a page is full when nothing can be added between pd_lower and * pd_upper. @@ -69,11 +69,16 @@ * * AM-generic per-page information is kept in PageHeaderData. * - * AM-specific per-page data (if any) is kept in the area marked "special - * space"; each AM has an "opaque" structure defined somewhere that is - * stored as the page trailer. an access method should always - * initialize its pages with PageInit and then set its own opaque - * fields. + * Reserved page space is defined at initdb time and reserves the final bytes + * of each disk page for conditional feature use, for instance storing + * authenticated data or IVs for encryption. + * + * AM-specific per-page data (if any) is kept in the area marked "special"; + * each AM has an "opaque" structure defined somewhere that is + * stored as the page trailer, right before any reserved page space. + * An access method should always initialize its pages with PageInit + * and then set its own opaque fields at the pd_special offset that + * was assigned in PageInit. */ typedef Pointer Page; -- 2.40.1