From 72f7a425fcd9a803010294e6974ecd7680a9aee6 Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Thu, 19 Mar 2020 18:29:12 -0300
Subject: [PATCH 1/2] glossary

---
 doc/src/sgml/filelist.sgml |    1 +
 doc/src/sgml/glossary.sgml | 1441 ++++++++++++++++++++++++++++++++++++
 doc/src/sgml/postgres.sgml |    1 +
 3 files changed, 1443 insertions(+)
 create mode 100644 doc/src/sgml/glossary.sgml

diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml
index 3da2365ea9..504c8a6326 100644
--- a/doc/src/sgml/filelist.sgml
+++ b/doc/src/sgml/filelist.sgml
@@ -170,6 +170,7 @@
 
 <!ENTITY limits     SYSTEM "limits.sgml">
 <!ENTITY acronyms   SYSTEM "acronyms.sgml">
+<!ENTITY glossary   SYSTEM "glossary.sgml">
 
 <!ENTITY features-supported   SYSTEM "features-supported.sgml">
 <!ENTITY features-unsupported SYSTEM "features-unsupported.sgml">
diff --git a/doc/src/sgml/glossary.sgml b/doc/src/sgml/glossary.sgml
new file mode 100644
index 0000000000..cf20fb759c
--- /dev/null
+++ b/doc/src/sgml/glossary.sgml
@@ -0,0 +1,1441 @@
+<appendix id="glossary">
+ <title>Glossary</title>
+ <para>
+  This is a list of terms and their meaning in the context of
+  <productname>PostgreSQL</productname> and relational database
+  systems in general.
+ </para>
+  <glosslist>
+   <glossentry id="glossary-aggregate">
+    <glossterm>Aggregate</glossterm>
+    <glossdef>
+     <para>
+      To combine a collection of data values into a single value, whose
+      value may not be of the same type as the original values.
+      <glossterm>Aggregate</glossterm> <glossterm>Functions</glossterm>
+      combine multiple <glossterm>Rows</glossterm> that share a common set
+      of values into one <glossterm>Row</glossterm>, which means that the
+      only data visible in the values in common, and the aggregates of the
+      non-common data.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="functions-aggregate">Aggregate Functions</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-analytic">
+    <glossterm>Analytic</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Function</glossterm> whose computed value can reference
+      values found in nearby <glossterm>Rows</glossterm> of the same
+      <glossterm>Result Set</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="tutorial-window">Window Functions</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-archiver">
+    <glossterm>Archiver</glossterm>
+    <glossdef>
+     <para>
+      A process that backs up <glossterm>WAL Files</glossterm> in order to
+      reclaim space on the file system.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="continuous-archiving">Backup and Restore: Continuous Archiving and Point-in-Time Recovery (PITR)</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-atomic">
+    <glossterm>Atomic</glossterm>
+    <glossdef>
+     <para>
+      In reference to the value of an <glossterm>Attribute</glossterm> or
+      <glossterm>Datum</glossterm>: cannot be broken down into smaller
+      components.
+     </para>
+     <para>
+      In reference to an operation: An event that cannot be completed in
+      part: it must either entirely succeed or entirely fail. A series of
+      <acronym>SQL</acronym> statements can be combined into a
+      <glossterm>Transaction</glossterm>, and that
+      <glossterm>transaction</glossterm> is said to be
+      <glossterm>Atomic</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-attribute">
+    <glossterm>Attribute</glossterm>
+    <glossdef>
+     <para>
+      An element with a certain name and data type found within a
+      <glossterm>Tuple</glossterm> or <glossterm>Table</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-autovacuum">
+    <glossterm>Autovacuum</glossterm>
+    <glossdef>
+     <para>
+      Processes that remove outdated <acronym>MVCC</acronym>
+      <glossterm>Records</glossterm> of the <glossterm>Heap</glossterm> and
+      <glossterm>Index</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="routine-vacuuming">Routine Database Maintenance Tasks: Routine Vacuuming</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-backend-process">
+    <glossterm>Backend Process</glossterm>
+    <glossdef>
+     <para>
+      Processes of an <glossterm>Instance</glossterm> which act on behalf of
+      client <glossterm>Connections</glossterm> and handle their requests.
+     </para>
+     <para>
+      (Don't confuse this term with the similar terms <glossterm>Background
+      Worker</glossterm> or <glossterm>Background Writer</glossterm>).
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-backend-server">
+    <glossterm>Backend Server</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>Instance</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-background-worker">
+    <glossterm>Background Worker</glossterm>
+    <glossdef>
+     <para>
+      Individual processes within an <glossterm>Instance</glossterm>, which
+      run system- or user-supplied code. Typical use cases are processes
+      which handle parts of an <acronym>SQL</acronym> query to take
+      advantage of parallel execution on servers with multiple
+      <acronym>CPUs</acronym>.
+    </para>
+    <para>
+     For more information, see
+     <link linkend="bgworker">Background Worker Processes</link>.
+    </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-background-writer">
+    <glossterm>Background Writer</glossterm>
+    <glossdef>
+     <para>
+      Writes continuously dirty pages from <glossterm>Shared
+      Memory</glossterm> to the file system. It starts periodically, but
+      works only for a short period in order to distribute expensive
+      <acronym>I/O</acronym> activity over time instead of generating fewer
+      large <acronym>I/O</acronym> peaks which could block other processes.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="runtime-config-resource">Server Configuration: Resource Consumption</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-cast">
+    <glossterm>Cast</glossterm>
+    <glossdef>
+     <para>
+      A conversion of a <glossterm>Datum</glossterm> from its current data
+      type to another data type.
+     </para>
+    </glossdef>
+   </glossentry>
+
+ <glossentry id="glossary-catalog">
+    <glossterm>Catalog</glossterm>
+    <glossdef>
+     <para>
+      The <acronym>SQL</acronym> standard uses this standalone term to
+      indicate what is called a <glossterm>Database</glossterm> in
+      <productname>PostgreSQL</productname>'s terminology.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="manage-ag-overview">Managing Databases: Overview</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-check-constraint">
+    <glossterm>Check Constraint</glossterm>
+    <glossdef>
+     <para>
+      A type of <glossterm>Constraint</glossterm> defined on a
+      <glossterm>Relation</glossterm> which restricts the values allowed in
+      one or more <glossterm>Attributes</glossterm>. The <glossterm>Check
+      Constraint</glossterm> can make reference to any
+      <glossterm>Attribute</glossterm> in the
+      <glossterm>Relation</glossterm>, but cannot reference other
+      <glossterm>Rows</glossterm> of the same
+      <glossterm>Relation</glossterm> or other
+      <glossterm>Relations</glossterm>.
+     </para>
+    <para>
+     For more information, see
+     <link linkend="ddl-constraints">Constraints</link>.
+    </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-checkpointer">
+    <glossterm>Checkpointer</glossterm>
+    <glossdef>
+     <para>
+      A process that writes dirty pages and <glossterm>WAL
+      Records</glossterm> to the file system and creates a special
+      checkpoint record. This process is initiated when predefined
+      conditions are met, such as a specified amount of time has passed, or
+      a certain volume of records have been collected.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-checkpoint">
+    <glossterm>Checkpoint</glossterm>
+    <glossdef>
+     <para>
+      A <link linkend="sql-checkpoint"> Checkpoint</link> is a point in time
+      when all older dirty pages of the <glossterm>Shared
+      Memory</glossterm>, all older <glossterm>WAL records</glossterm>, and
+      a special <glossterm>Checkpoint record</glossterm> have been written
+      and flushed to disk.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-cluster">
+    <glossterm>Cluster</glossterm>
+    <glossdef>
+     <para>
+      A group of <glossterm>Database</glossterm>s plus their
+      <glossterm>Global SQL Objects</glossterm>. The
+      <glossterm>Cluster</glossterm> is managed by exactly one
+      <glossterm>Instance</glossterm>. A newly created
+      <glossterm>Cluster</glossterm> will have three
+      <glossterm>Databases</glossterm> created automatically. They are
+      <literal>template0</literal>, <literal>template1</literal>, and
+      <literal>postgres</literal>. It is expected that an application will
+      create one or more additional <glossterm>Databases</glossterm> aside
+      from these three.
+     </para>
+     <para>
+      Don't confuse the <productname>PostgreSQL</productname> specific term
+      <glossterm>Cluster</glossterm> with the SQL command
+      <literal>CLUSTER</literal>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-column">
+    <glossterm>Column</glossterm>
+    <glossdef>
+     <para>
+      An <glossterm>Attribute</glossterm> found in a
+      <glossterm>Table</glossterm> or <glossterm>View</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-commit">
+    <glossterm>Commit</glossterm>
+    <glossdef>
+     <para>
+      The act of finalizing a <glossterm>Transaction</glossterm> within the
+      <glossterm>Database</glossterm>.
+     </para>
+    <para>
+     For more information, see
+     <link linkend="sql-commit">SQL Commands: COMMIT</link>.
+    </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-concurrency">
+    <glossterm>Concurrency</glossterm>
+    <glossdef>
+     <para>
+      The concept that multiple independent operations happen within the
+      <glossterm>Database</glossterm> at the same time.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-connection">
+    <glossterm>Connection</glossterm>
+    <glossdef>
+     <para>
+      A <acronym>TCP/IP</acronym> or socket line for inter-process
+      communication. If the two involved processes reside on different
+      servers, <acronym>TCP/IP</acronym> must be used.  Otherwise both
+      techniques are possible.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-constraint">
+    <glossterm>Constraint</glossterm>
+    <glossdef>
+     <para>
+      A concept of restricting the values of data allowed within a
+      <glossterm>Table</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="ddl-constraints">Constraints</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-data-area">
+    <glossterm>Data Area</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>Data Directory</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-data-directory">
+    <glossterm>Data Directory</glossterm>
+    <glossdef>
+     <para>
+      The base directory on the filesystem of a
+      <glossterm>Server</glossterm> that contains all data files and
+      subdirectories associated with a <glossterm>Cluster</glossterm> with
+      the exception of tablespaces. The environment variable
+      <literal>PGDATA</literal> often &mdash; but not always &mdash; referes to the
+      <glossterm>Data Directory</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="storage-file-layout">Database Physical Storage: Database File Layout</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-database">
+    <glossterm>Database</glossterm>
+    <glossdef>
+     <para>
+      A named collection of <glossterm>SQL Objects</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="manage-ag-overview">Managing Databases: Overview</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-database-server">
+    <glossterm>Database Server</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>Instance</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-datum">
+    <glossterm>Datum</glossterm>
+    <glossdef>
+     <para>
+      The internal representation of a <acronym>SQL</acronym> data type.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-delete">
+    <glossterm>Delete</glossterm>
+    <glossdef>
+     <para>
+      A <acronym>SQL</acronym> command whose purpose is to remove
+      <glossterm>Rows</glossterm> from a given <glossterm>Table</glossterm>
+      or <glossterm>Relation</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-delete">SQL Commands: DELETE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-file-segment">
+    <glossterm>File Segment</glossterm>
+    <glossdef>
+     <para>
+       If a heap or index file grows in size over 1 GB, it will be split
+       into multiple physical files. These files are called <glossterm>File
+       Segments</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="storage-file-layout">Database Physical Storage: Database File Layout</link>.
+     </para>
+     <para>
+      (Don't confuse this term with the similar term
+      <glossterm>WAL Segment</glossterm>).
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-foreign-data-wrapper">
+    <glossterm>Foreign Data Wrapper</glossterm>
+    <glossdef>
+     <para>
+      A means of representing data that is not contained in the local
+      <glossterm>Database</glossterm> as if were in local
+      <glossterm>Table</glossterm>(s). With a Foreign Data Wrapper it is
+      possible to define a <glossterm>Foreign Server</glossterm> and
+      <glossterm>Foreign Tables</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createforeigndatawrapper">SQL Commands: CREATE FOREIGN DATA WRAPPER</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-foreign-key">
+    <glossterm>Foreign Key</glossterm>
+    <glossdef>
+     <para>
+      A type of <glossterm>Constraint</glossterm> defined on one or more
+      <glossterm>Column</glossterm>s in a <glossterm>Table</glossterm> which
+      requires the value in those <glossterm>Column</glossterm>s to uniquely
+      identify a <glossterm>Row</glossterm> in the specified
+      <glossterm>Table</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-foreign-server">
+    <glossterm>Foreign Server</glossterm>
+    <glossdef>
+     <para>
+      A named collection of <glossterm>Foreign Tables</glossterm> which all
+      use the same <glossterm>Foreign Data Wrapper</glossterm> and have
+      other configuration values in common.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createserver">SQL Commands: CREATE SERVER</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-foreign-table">
+    <glossterm>Foreign Table</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Relation</glossterm> which appears to have
+      <glossterm>Rows</glossterm> and <glossterm>Columns</glossterm> similar
+      to a regular <glossterm>Table</glossterm>, but will forward requests
+      for data through its <glossterm>Foreign Data Wrapper</glossterm>,
+      which will return <glossterm>Result Sets</glossterm> structured
+      according to the definition of the <glossterm>Foreign Table</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createforeigntable">SQL Commands: CREATE FOREIGN TABLE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-function">
+    <glossterm>Function</glossterm>
+    <glossdef>
+     <para>
+      Any pre-defined transformation of data. Many
+      <glossterm>Functions</glossterm> are already defined within
+      <productname>PostgreSQL</productname> itself, but can also be
+      user-defined.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createfunction">SQL Commands: CREATE FUNCTION</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-global-sql-object">
+    <glossterm>Global SQL Object</glossterm>
+    <glossdef>
+     <para>
+     <!-- FIXME -->
+      Not all <glossterm>SQL Objects</glossterm> belong to a certain
+      <glossterm>Schema</glossterm>. Some belong to the complete
+      <glossterm>Database</glossterm>, or even to the complete
+      <glossterm>Cluster</glossterm>. These are referred to as
+      <glossterm>Global SQL Objects</glossterm>. Collations and Extensions
+      such as <glossterm>Foreign Data Wrappers</glossterm> reside at the
+      <glossterm>Database</glossterm> level; <glossterm>Database</glossterm>
+      names, <glossterm>Roles</glossterm>,
+      <glossterm>Tablespaces</glossterm>, <glossterm>Replication</glossterm>
+      origins, and subscriptions for logical
+      <glossterm>Replication</glossterm> at the
+      <glossterm>Cluster</glossterm> level.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-grant">
+    <glossterm>Grant</glossterm>
+    <glossdef>
+     <para>
+      A <acronym>SQL</acronym> command that is used to enable
+      <glossterm>Users</glossterm> or <glossterm>Roles</glossterm> to access
+      specific objects within the <glossterm>Database</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-grant">SQL Commands: GRANT</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-heap">
+    <glossterm>Heap</glossterm>
+    <glossdef>
+     <para>
+      Contains the original values of <glossterm>Row</glossterm> attributes
+      (i.e. the data). The <glossterm>Heap</glossterm> is realized within
+      <glossterm>Database</glossterm> files and mirrored in
+      <glossterm>Shared Memory</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-host">
+    <glossterm>Host</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>Server</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-index">
+    <glossterm>Index</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Relation</glossterm> that contains data derived from a
+      <glossterm>Table</glossterm> (or <glossterm>Relation</glossterm> such
+      as a <glossterm>Materialized View</glossterm>). It's internal
+      structure supports very fast retrieval of and access to the original
+      data.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createindex">SQL Commands: CREATE INDEX</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-insert">
+    <glossterm>Insert</glossterm>
+    <glossdef>
+     <para>
+      A <acronym>SQL</acronym> command used to add new data into a
+      <glossterm>Table</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-insert">SQL Commands: INSERT</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-instance">
+    <glossterm>Instance</glossterm>
+    <glossdef>
+     <para>
+      An <glossterm>Instance</glossterm> is a group of processes plus their
+      common <glossterm>Shared Memory</glossterm> running on a single
+      <glossterm>Server</glossterm>. The <glossterm>Instance</glossterm>
+      handles all key features of a <acronym>DBMS</acronym>: read and write
+      access to files and <glossterm>Shared Memory</glossterm>, assurance of
+      the <acronym>ACID</acronym> paradigm, <acronym>MVCC</acronym>,
+      <glossterm>Connections</glossterm> to client programms, backup,
+      recovery, replication, privileges, etc.
+     </para>
+     <para>
+      An <glossterm>Instance</glossterm> manages exactly one
+      <glossterm>Cluster</glossterm>.
+     </para>
+     <para>
+      Many <glossterm>Instances</glossterm> can run on the same server as
+      long as they use different <acronym>IP</acronym> ports and manage
+      different <glossterm>Cluster</glossterm>s. Different
+      <glossterm>Instances</glossterm> on a server may use the same or
+      different versions of <productname>PostgreSQL</productname>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-join">
+    <glossterm>Join</glossterm>
+    <glossdef>
+     <para>
+      A technique used with <command>SELECT</command> statements for
+      correlating data in one or more <glossterm>Relations</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-key">
+    <glossterm>Key</glossterm>
+    <glossdef>
+     <para>
+      A means of identifying a <glossterm>Row</glossterm> within a
+      <glossterm>Table</glossterm> or <glossterm>Relation</glossterm> by
+      values contained within one or more <glossterm>Attributes</glossterm>
+      in that <glossterm>Table</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-lock">
+    <glossterm>Lock</glossterm>
+    <glossdef>
+     <para>
+      A mechanism for one process temporarily preventing data from being
+      manipulated by any other process.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-log-file">
+    <glossterm>Log File</glossterm>
+    <glossdef>
+     <para>
+      <link linkend="logfile-maintenance">LOG files</link> contain readable
+      text lines about serious and non-serious events, e.g.: use of wrong
+      password, long-running queries, ... .
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-log-writer">
+    <glossterm>Log Writer</glossterm>
+    <glossdef>
+     <para>
+      If activated and parameterized, the
+      <link linkend="runtime-config-logging">Log Writer</link> process
+      writes information about database events into the current
+      <glossterm>Log file</glossterm>. When reaching certain time- or
+      volume-dependent criterias, he <!-- FIXME "he"? --> creates a new
+      <glossterm>Log file</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-log-record">
+    <glossterm>Log Record</glossterm>
+     <glossdef>
+      <para>
+       See <glossterm>WAL Record</glossterm>.
+      </para>
+     </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-logged">
+    <glossterm>Logged</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Table</glossterm> is considered
+      <glossterm>Logged</glossterm> if changes to it are sent to the
+      <glossterm>WAL Log</glossterm>. By default, all regular
+      <glossterm>Tables</glossterm> are <glossterm>Logged</glossterm>. A
+      <glossterm>Table</glossterm> can be speficied as unlogged either at
+      creation time or via the <command>ALTER TABLE</command> command. The
+      primary use of unlogged <glossterm>Tables</glossterm> is for storing
+      transient work data that must be shared across processes, but with a
+      final result stored in logged <glossterm>Tables</glossterm>.
+      <glossterm>Temporary Tables</glossterm> are always unlogged.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-master">
+    <glossterm>Master</glossterm>
+    <glossdef>
+     <para>
+      When two or more <glossterm>Databases</glossterm> are linked via
+      <glossterm>Replication</glossterm>, the <glossterm>Server</glossterm>
+      that is considered the authoritative source of information is called
+      the <glossterm>Master</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-materialized">
+    <glossterm>Materialized</glossterm>
+    <glossdef>
+     <para>
+      The act of storing information rather than just the means of accessing
+      the information. This term is used in <glossterm>Materialized
+      Views</glossterm> meaning that the data derived from the
+      <glossterm>View</glossterm> is actually stored on disk separate from
+      the sources of that data. When the term
+      <glossterm>Materialized</glossterm> is used in speaking about
+      mulit-step queries, it means that the data of a given step is stored
+      (in memory, but that storage may spill over onto disk).
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-materialized-view">
+    <glossterm>Materialized View</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Relation</glossterm> that is defined in the same way that
+      a <glossterm>View</glossterm> is, but it stores data in the same way
+      that a <glossterm>Table</glossterm> does. it cannot be modified via
+      <command>INSERT</command>, <command>UPDATE</command>, or
+      <command>DELETE</command> operations.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-creatematerializedview">SQL Commands: CREATE MATERIALIZED VIEW</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-null">
+    <glossterm>Null</glossterm>
+    <glossdef>
+     <para>
+      A concept of non-existence that is a central tenet of Relational
+      Database Theory. It represents the absence of value.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-partition">
+    <glossterm>Partition</glossterm>
+    <glossdef>
+     <para>
+      <!-- FIXME should this use the style used in "atomic"? -->
+      a) A <glossterm>Table</glossterm> that can be queried independently by
+      its own name, but can also be queried via another
+      <glossterm>Table</glossterm>, a partitionend
+      <glossterm>Table</glossterm>, which is a collection of
+      sub-<glossterm>Table</glossterm>s, each capable of holding one defined
+      subset of information that does not overlap with any other
+      <glossterm>Table</glossterm> in the set of
+      <glossterm>Table</glossterm>s.
+     </para>
+     <para>
+      b) A defined boundary used in an <glossterm>Analytic</glossterm>
+      <glossterm>Function</glossterm> to identify which neighboring
+      <glossterm>Rows</glossterm> can be considered by the
+      <glossterm>Function</glossterm> for this particular
+      <glossterm>Row</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-postmaster">
+    <glossterm>Postmaster</glossterm>
+    <glossdef>
+     <para>
+       The very first process of an <glossterm>Instance</glossterm>. It
+       starts the other processes and creates <glossterm>Backend
+       Processes</glossterm> on demand.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="server-start">Server Setup and Operation: Starting the Database Server</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-primary-key">
+    <glossterm>Primary Key</glossterm>
+    <glossdef>
+     <para>
+      A special case of <glossterm>Unique Index</glossterm> defined on a
+      <glossterm>Table</glossterm> or other <glossterm>Relation</glossterm>
+      that also guarantees that all of the <glossterm>Attributes</glossterm>
+      within the <glossterm>Primary Key</glossterm> do not have
+      <glossterm>Null</glossterm> values.  As the name implies, there can be
+      only one <glossterm>Primary Key</glossterm> per
+      <glossterm>Table</glossterm>, though it is possible to have multiple
+      <glossterm>Unique Indexes</glossterm> that also have no
+      <glossterm>Null</glossterm>-capable <glossterm>Attributes</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-procedure">
+    <glossterm>Procedure</glossterm>
+    <glossdef>
+     <para>
+      A defined set of instructions for manipulating data within a
+      <glossterm>Database</glossterm>. <glossterm>Procedure</glossterm> can
+      be written in a variety of programming languages. They may seem
+      similar to <glossterm>Functions</glossterm> but are different in that
+      they must be invoked via the <command>CALL</command> command rather
+      than the <command>SELECT</command> or <command>PERFORM</command>
+      commands, and they are allowed to make transactional statements such
+      as <command>COMMIT</command> and <command>ROLLBACK</command>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createprocedure">SQL Commands: CREATE PROCEDURE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-record">
+    <glossterm>Record</glossterm>
+    <glossdef>
+     <para>
+      See <link linkend="sql-revoke">Tupple</link>.
+     </para>
+     <para>
+      A single <glossterm>Row</glossterm> of a <glossterm>Table</glossterm>
+      or other Relation.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-referential-integrity">
+    <glossterm>Referential Integrity</glossterm>
+    <glossdef>
+     <para>
+      The means of restricting data in one <glossterm>Relation</glossterm>
+      such that it must have matching data in another
+      <glossterm>Relation</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-relation">
+    <glossterm>Relation</glossterm>
+    <glossdef>
+     <para>
+      The generic term for all objects in a <glossterm>Database</glossterm>
+      that have a name and a list of <glossterm>Attributes</glossterm>
+      defined in a specific order. <glossterm>Tables</glossterm>,
+      <glossterm>Views</glossterm>, <glossterm>Foreign Tables</glossterm>,
+      <glossterm>Materialized Views</glossterm>, and
+      <glossterm>Indexes</glossterm> are all
+      <glossterm>Relations</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-replica">
+    <glossterm>Replica</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Database</glossterm> that is paired with a Master
+      <glossterm>Database</glossterm> and is maintaining a copy of some or
+      all of the Master <glossterm>Database</glossterm>'s data. The primary
+      reasons for doing this are to allow for greater access to that data,
+      and to maintain availability of the data in the event that the
+      <glossterm>Master</glossterm> becomes unavailable.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-replication">
+    <glossterm>Replication</glossterm>
+    <glossdef>
+     <para>
+       The act of reproducing data on one <glossterm>Server</glossterm> into
+       another called a <glossterm>Replica</glossterm>. This can take the
+       form of Physical <glossterm>Replication</glossterm>, where all file
+       changes from one <glossterm>Server</glossterm> are copied verbatim,
+       or Logical <glossterm>Replication</glossterm> where a defined subset
+       of data changes are conveyed.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-result-set">
+    <glossterm>Result Set</glossterm>
+    <glossdef>
+     <para>
+      A data structure transmitted from a <glossterm>Server</glossterm> to
+      client program upon the completion of a <acronym>SQL</acronym>
+      command, usually a <command>SELECT</command> but it can be an
+      <command>INSERT</command>, <command>UPDATE</command>, or
+      <command>DELETE</command> command if the <literal>RETURNING</literal>
+      clause is specified. The data structure consists of zero or more
+      <glossterm>Rows</glossterm> with the same ordered set of
+      <glossterm>Attributes</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-revoke">
+    <glossterm>Revoke</glossterm>
+    <glossdef>
+     <para>
+      A command to reduce access to a named set of
+      <glossterm>Database</glossterm> objects for a named list of
+      <glossterm>Users</glossterm> and <glossterm>Roles</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-revoke">SQL Commands: REVOKE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-role">
+    <glossterm>Role</glossterm>
+    <glossdef>
+     <para>
+      A collection of access privileges to the
+      <glossterm>Database</glossterm>. <glossterm>Roles</glossterm> are
+      themselves a privilege that can be granted to other roles. This is
+      often done for convenience or to ensure completeness when multiple
+      Users need the same privileges.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createrole">SQL Commands: CREATE ROLE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-rollback">
+    <glossterm>Rollback</glossterm>
+    <glossdef>
+     <para>
+      A command to undo all of the operations performed since the beginning
+      of a <glossterm>Transaction</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-rollback">SQL Commands: ROLLBACK</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-row">
+    <glossterm>Row</glossterm>
+    <glossdef>
+     <para>
+      See <link linkend="sql-revoke">Tupple</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-savepoint">
+    <glossterm>Savepoint</glossterm>
+    <glossdef>
+     <para>
+      A special mark (such as a timestamp) inside a
+      <glossterm>Transaction</glossterm>. Data modifications after this
+      point in time may be rolled back to the time of the savepoint.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-savepoint">SQL Commands: SAVEPOINT</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-schema">
+    <glossterm>Schema</glossterm>
+    <glossdef>
+     <para>
+      A <link linkend="ddl-schemas">schema</link> is a namespace for
+      <glossterm>SQL objects</glossterm>, which all reside in the same
+      <glossterm>database</glossterm>.  Each <glossterm>SQL
+      object</glossterm> must reside in exactly one
+      <glossterm>Schema</glossterm>.
+     </para>
+     <para>
+      In general, the names of <glossterm>SQL objects</glossterm> in the
+      schema are unique - even across different types of objects.  The lone
+      exception is the case of <glossterm>Unique</glossterm>
+      <glossterm>Constraint</glossterm>s, in which case there
+      <emphasis>must</emphasis> be a <glossterm>Unique Index</glossterm>
+      with the same name and <glossterm>Schema</glossterm> as the
+      <glossterm>Constraint</glossterm>.  There is no restriction on having
+      a name used in multiple <glossterm>Schema</glossterm>s.
+     </para>
+     <para>
+      Many <glossterm>SQL objects</glossterm> reside in the default
+      <glossterm>Schema</glossterm> <literal>public</literal>, but it is
+      expected that more schemas are created to hold application specific
+      <glossterm>SQL objects</glossterm>.
+     </para>
+     <para>
+      More generically, the term <glossterm>Schema</glossterm> is used to
+      mean all data descriptions (<glossterm>Table</glossterm> definitions,
+      <glossterm>Constraint</glossterm>s, comments) for a given
+      <glossterm>Database</glossterm>.  </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-segment">
+    <glossterm>Segment</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>File Segment</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-select">
+    <glossterm>Select</glossterm>
+    <glossdef>
+     <para>
+      The command used to query a <glossterm>Database</glossterm>. Normally,
+      <command>SELECT</command>s are not expected to modify the
+      <glossterm>Database</glossterm> in any way, but it is possible that
+      <glossterm>Functions</glossterm> invoked within the query could have
+      side-effects that do modify data.  </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-serializable">
+    <glossterm>Serializable</glossterm>
+    <glossdef>
+     <para>
+      Transactions defined as <literal>SERIALIZABLE</literal> are unable to
+      see changes made within other transactions. In effect, for the
+      initializing session the entire <glossterm>Database</glossterm>
+      appears to be frozen duration such a
+      <glossterm>Transaction</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-server">
+    <glossterm>Server</glossterm>
+    <glossdef>
+     <para>
+      The term <glossterm>Server</glossterm> denotes real hardware, a
+      container, or a Virtual Machine.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-session">
+    <glossterm>Session</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Connection</glossterm> to the <glossterm>Database</glossterm>.
+     </para>
+     <para>
+      A description of the commands that were issued in the life cycle of a
+      particular <glossterm>Connection</glossterm> to the
+      <glossterm>Database</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-sequence">
+    <glossterm>Sequence</glossterm>
+    <glossdef>
+     <para>
+      <!-- sounds excessively complicated a definition -->
+      An <glossterm>Database</glossterm> object which represents the
+      mathematical concept of a numerical integral sequence. It can be
+      thought of as a <glossterm>Table</glossterm> with exactly one
+      <glossterm>Row</glossterm> and one <glossterm>Column</glossterm>. The
+      value stored is known as the current value. A
+      <glossterm>Sequence</glossterm> has a defined direction (almost always
+      increasing) and an interval step (usually 1).  Whenever the
+      <literal>NEXTVAL</literal> pseudo-column of a
+      <glossterm>Sequence</glossterm> is accessed, the current value is moved
+      in the defined direction by the defined interval step, and that value
+      is returned to the invoking query, and the current value of the
+      sequence is updated to reflect the new value. The value can be updated
+      multiple times in a single query, the net effect being that each row
+      selected will have a different value. Values taken from a
+      <glossterm>Sequence</glossterm> are never reverted even in the case of
+      a <glossterm>Rollback</glossterm>, which means that the
+      <glossterm>Sequence</glossterm> will never emit the same number twice,
+      and thus is the normal way of generating values to be put in a
+      <glossterm>Primary Key</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createsequence">SQL Commands: CREATE SEQUENCE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-shared-memory">
+    <glossterm>Shared Memory</glossterm>
+    <glossdef>
+     <para>
+      <acronym>RAM</acronym> which is used by the processes common to an
+      <glossterm>Instance</glossterm>. It mirrors parts of
+      <glossterm>Database</glossterm> files, provides an area for
+      <glossterm>WAL Records</glossterm>, and stores additional common
+      information. Note that <glossterm>Shared Memory</glossterm> belongs to
+      the complete <glossterm>Instance</glossterm>, not to a single
+      <glossterm>Database</glossterm>.
+     </para>
+     <para>
+      <glossterm>Shared Memory</glossterm> is organized into pages. If a
+      page is modified, it is called a dirty page until it is written back
+      to the file system.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="runtime-config-resource-memory">Server Configuration: Resource Consumption</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-sql-object">
+    <glossterm>SQL Object</glossterm>
+     <glossdef>
+      <para>
+      <!-- FIXME why enumerate each type? -->
+       A <glossterm>Table</glossterm>, <glossterm>View</glossterm>,
+       <glossterm>Materialized View</glossterm>,
+       <glossterm>Index</glossterm>, <glossterm>Constraint</glossterm>,
+       <glossterm>Sequence</glossterm>, <glossterm>Function</glossterm>,
+       <glossterm>Procedure</glossterm>, <glossterm>Trigger</glossterm>,
+       data type, or operator. Every <glossterm>SQL Object</glossterm>
+       belongs to exactly one <glossterm>Schema</glossterm>.
+     </para>
+     <para>
+       For more information, see
+       <link linkend="manage-ag-overview">Managing Databases: Overview</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-stats-collector">
+    <glossterm>Stats Collector</glossterm>
+    <glossdef>
+     <para>
+      This process collects statistical information about the
+      <glossterm>Cluster</glossterm>'s activities.
+     </para>
+     <para>
+       For more information, see
+       <link linkend="monitoring-stats">Monitoring Database Activity: The Statistics Collector</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-system-catalog">
+    <glossterm>System Catalog</glossterm>
+    <glossdef>
+     <para>
+      A collection of <glossterm>Table</glossterm>s and
+      <glossterm>View</glossterm>s which describe the structure of all
+      <acronym>SQL</acronym> objects of the <glossterm>Database</glossterm>
+      and the <glossterm>Global SQL Objects</glossterm> of the
+      <glossterm>Cluster</glossterm>. The <glossterm>System
+      Catalog</glossterm> resides in the schema
+      <literal>pg_catalog</literal>. Main parts are mirrored as
+      <glossterm>Views</glossterm> in the <glossterm>Schema</glossterm>
+      <literal>information_schema</literal>.
+     </para>
+     <para>
+       For more information, see
+       <link linkend="ddl-schemas">Data Definition: Schemas</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-table">
+    <glossterm>Table</glossterm>
+    <glossdef>
+     <para>
+      A collection of <glossterm>Tuples</glossterm> (also known as
+      <glossterm>Rows</glossterm> or <glossterm>Records</glossterm>) having
+      a common data structure (the same number of
+      <glossterm>Attributes</glossterm>s, in the same order, having the same
+      name and type per position). A <glossterm>Table</glossterm> is the
+      most common form of <glossterm>Relation</glossterm> in
+      <productname>PostgreSQL</productname>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createtable">SQL Commands: CREATE TABLE</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-temporary-tables">
+    <glossterm>Temporary Tables</glossterm>
+    <glossdef>
+     <para>
+      <glossterm>Table</glossterm>s that exist either for the lifetime of a
+      <glossterm>Session</glossterm> or a
+      <glossterm>Transaction</glossterm>, as defined at creation time. The
+      data in them is not visible to other <glossterm>Sessions</glossterm>,
+      and is not <glossterm>Logged</glossterm>. <glossterm>Temporary
+      Tables</glossterm> are most often used to store intermediate data for
+      a multi-step data transformation.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createtable">SQL Commands: CREATE TABLE</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-transaction">
+    <glossterm>Transaction</glossterm>
+    <glossdef>
+     <para>
+      A combination of one or more commands that must act as a single
+      <glossterm>Atomic</glossterm> command: they all succeed or fail
+      together, and their effects are not visible to other sessions until
+      the <glossterm>Transaction</glossterm> is complete.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="transaction-iso">Transaction Isolation</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-trigger">
+    <glossterm>Trigger</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Function</glossterm> which can be defined to execute
+      whenever a certain operation (<command>INSERT</command>,
+      <command>UPDATE</command>, or <command>DELTE</command>) is applied to
+      that <glossterm>Relation</glossterm>. A <glossterm>Trigger</glossterm>
+      executes within the same <glossterm>Transaction</glossterm> as the
+      statement which invoked it, and if the <glossterm>Function</glossterm>
+      fails then the invoking statement also fails.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createtrigger">SQL Commands: CREATE TRIGGER</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-tuple">
+    <glossterm>Tuple</glossterm>
+    <glossdef>
+     <para>
+      A collection of <glossterm>Attributes</glossterm> in a fixed order.
+      That order may be defined by the <glossterm>Table</glossterm> where
+      the <glossterm>Tuple</glossterm> is found, in which case the
+      <glossterm>Tuple</glossterm> is often called a
+      <glossterm>Row</glossterm> or <glossterm>Record</glossterm>. It may
+      also be defined by the structure of a <glossterm>Result
+      Set</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-unique">
+    <glossterm>Unique</glossterm>
+    <glossdef>
+     <para>
+      The condition of having no matching values in the same
+      <glossterm>Relation</glossterm>. Most often used in the concept of
+      <glossterm>Unique Indexes</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-unlogged">
+    <glossterm>Unlogged</glossterm>
+    <glossdef>
+     <para>
+      Changes to an unlogged <glossterm>Relation</glossterm> are not
+      reflected in the <glossterm>WAL Log</glossterm>.  This disables
+      replication and crash recovery for such <glossterm>Relations</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-update">
+    <glossterm>Update</glossterm>
+    <glossdef>
+     <para>
+      A command used to modify <glossterm>Rows</glossterm> that already
+      exist in a specified <glossterm>Table</glossterm>. It cannot create
+      <glossterm>Rows</glossterm> nor can it remove
+      <glossterm>Rows</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-update">SQL Commands: UPDATE</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-user">
+    <glossterm>User</glossterm>
+    <glossdef>
+     <para>
+      A specific case of a <glossterm>Role</glossterm> that is entitled to
+      access (log into) the <glossterm>Database</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-user-mapping">
+    <glossterm>User Mapping</glossterm>
+    <glossdef>
+     <para>
+      The translation of user credentials in the local
+      <glossterm>Database</glossterm> to credentials in a remote data system
+      defined by a <glossterm>Foreign Data Wrapper</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createusermapping">SQL Commands: CREATE USER MAPPING</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-view">
+    <glossterm>View</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>Relation</glossterm> that is defined by a
+      <command>SELECT</command> statement, but has no storage of its own.
+      Any time a query references a <glossterm>View</glossterm>, the
+      definition of the <glossterm>View</glossterm> is substituted into the
+      query as if the user had typed that subquery instead of the name of
+      the <glossterm>View</glossterm>.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="sql-createview">SQL Commands: CREATE VIEW</link>
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-wal-file">
+    <glossterm>WAL File</glossterm>
+    <glossdef>
+     <para>
+      <glossterm>WAL Records</glossterm> are continously written to the end
+      of the current <glossterm>WAL File</glossterm>.  <glossterm>WAL
+      Files</glossterm> as well as <glossterm>WAL Records</glossterm> belong
+      to the complete <glossterm>Cluster</glossterm>, not to a single
+      <glossterm>Database</glossterm>. After a <glossterm>WAL
+      File</glossterm> is full, a new <glossterm>WAL File</glossterm> is
+      created or, under certain conditions, one of the previous
+      <glossterm>WAL Files</glossterm> is renamed and reused.
+     </para>
+     <para>
+      The sequence of <glossterm>WAL Records</glossterm> in combination with
+      the sequence of <glossterm>WAL Files</glossterm> represents the
+      sequence of changes that have taken place in the
+      <glossterm>Cluster</glossterm>.
+     </para>
+      <para>
+       For more information, see
+       <link linkend="wal-internals">Reliability and the Write-Ahead Log: WAL Internals</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+    <glossentry id="glossary-wal-log">
+    <glossterm>WAL Log</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>WAL File</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-wal-record">
+    <glossterm>WAL Record</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm>WAL Record</glossterm> contains either new or changed
+      <glossterm>Heap</glossterm> or <glossterm>Index</glossterm> data or
+      information about a <command>COMMIT</command>,
+      <command>ROLLBACK</command>, <command>SAVEPOINT</command>, or
+      <glossterm>Checkpointer</glossterm> operation. WAL records use a
+      non-printabe binary format.
+     </para>
+      <para>
+       For more information, see
+       <link linkend="wal-internals">Reliability and the Write-Ahead Log: WAL Internals</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-wal-segment">
+    <glossterm>WAL Segment</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>WAL File</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-wal-segment-file">
+    <glossterm>WAL Segment File</glossterm>
+    <glossdef>
+     <para>
+      See <glossterm>WAL File</glossterm>.
+     </para>
+    </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-wal-writer">
+   <glossterm>WAL Writer</glossterm>
+   <glossdef>
+    <para>
+     This process writes <glossterm>WAL Records</glossterm> from
+     <glossterm>Shared Memory</glossterm> to <glossterm>WAL
+     Files</glossterm>.
+    </para>
+      <para>
+       For more information, see
+       <link linkend="runtime-config-wal">Server Configuration: Write Ahead Log</link>.
+     </para>
+   </glossdef>
+   </glossentry>
+
+   <glossentry id="glossary-window-function">
+    <glossterm>Window Function</glossterm>
+    <glossdef>
+     <para>
+      A type of <glossterm>Function</glossterm> similar to an
+      <glossterm>Aggregate</glossterm> in that can derive its value from a
+      set of <glossterm>Rows</glossterm> in a <glossterm>Result
+      Set</glossterm>, but still retaining the original source data.
+     </para>
+     <para>
+      For more information, see
+      <link linkend="tutorial-window">Window Functions</link>.
+     </para>
+    </glossdef>
+   </glossentry>
+  </glosslist>
+</appendix>
diff --git a/doc/src/sgml/postgres.sgml b/doc/src/sgml/postgres.sgml
index e59cba7997..2183e33bea 100644
--- a/doc/src/sgml/postgres.sgml
+++ b/doc/src/sgml/postgres.sgml
@@ -278,6 +278,7 @@
   &docguide;
   &limits;
   &acronyms;
+  &glossary;
 
  </part>
 
-- 
2.20.1

