summaryrefslogtreecommitdiff
path: root/doc/src/sgml/storage.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/storage.sgml')
-rw-r--r--doc/src/sgml/storage.sgml22
1 files changed, 21 insertions, 1 deletions
diff --git a/doc/src/sgml/storage.sgml b/doc/src/sgml/storage.sgml
index cda7f6452f..430df4a843 100644
--- a/doc/src/sgml/storage.sgml
+++ b/doc/src/sgml/storage.sgml
@@ -147,7 +147,9 @@ the relation. The free space map is stored in a file named with the filenode
number plus the suffix <literal>_fsm</>. Tables also have a
<firstterm>visibility map</>, stored in a fork with the suffix <literal>_vm</>,
to track which pages are known to have no dead tuples. The visibility map is
-described further in <xref linkend="storage-vm">.
+described further in <xref linkend="storage-vm">. Unlogged tables and indexes
+have a third fork, known as the initialization fork, which is stored in a fork
+with the suffix <literal>_init</literal> (see <xref linkend="storage-init">).
</para>
<caution>
@@ -485,6 +487,24 @@ a bit is not set, it might or might not be true.
</sect1>
+<sect1 id="storage-init">
+
+<title>The Initialization Fork</title>
+
+<indexterm>
+ <primary>Initialization Fork</primary>
+</indexterm>
+
+<para>
+Each unlogged table, and each index on an unlogged table, has an initialization
+fork. The initialization fork is an empty table or index of the appropriate
+type. When an unlogged table must be reset to empty due to a crash, the
+initialization fork is copied over the main fork, and any other forks are
+erased (they will be recreated automatically as needed).
+</para>
+
+</sect1>
+
<sect1 id="storage-page-layout">
<title>Database Page Layout</title>