diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml
index 1043d0f7ab..cf21ef857e 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 color      SYSTEM "color.sgml">
 
 <!ENTITY features-supported   SYSTEM "features-supported.sgml">
diff --git a/doc/src/sgml/glossary.sgml b/doc/src/sgml/glossary.sgml
new file mode 100644
index 0000000000..7d981a9223
--- /dev/null
+++ b/doc/src/sgml/glossary.sgml
@@ -0,0 +1,1692 @@
+<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 Function</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-function">function</glossterm> that
+     combines (<firstterm>aggregates</firstterm>) multiple input values,
+     for example by counting, averaging or adding,
+     yielding a single output value.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="functions-aggregate"/>.
+    </para>
+    <glossseealso otherterm="glossary-window-function" />
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-analyze">
+   <glossterm>Analyze (operation)</glossterm>
+   <glossdef>
+    <para>
+     The process of collecting statistics from data in
+     <glossterm linkend="glossary-table">tables</glossterm>
+     and other <glossterm linkend="glossary-relation">relations</glossterm>
+     to help the <glossterm linkend="glossary-planner">query planner</glossterm>
+     to make decisions about how to execute
+     <glossterm linkend="glossary-query">queries</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Analytic Function</glossterm>
+   <glosssee otherterm="glossary-window-function" />
+  </glossentry>
+
+  <glossentry id="glossary-atomic">
+   <glossterm>Atomic</glossterm>
+   <glossdef>
+    <para>
+     In reference to a <glossterm linkend="glossary-datum">datum</glossterm>:
+     the fact that its value that cannot be broken down into smaller
+     components.
+    </para>
+   </glossdef>
+   <glossdef>
+    <para>
+     In reference to a
+     <glossterm linkend="glossary-transaction">database transaction</glossterm>:
+     see <glossterm linkend="glossary-atomicity">atomicity</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-atomicity">
+   <glossterm>Atomicity</glossterm>
+   <glossdef>
+    <para>
+     The property of a <glossterm linkend="glossary-transaction">transaction</glossterm>
+     that either all its operations complete as a single unit or none do.
+     In addition, if a system failure occurs during the execution of a
+     transaction, no partial results are visible after recovery.
+     This is one of the <acronym>ACID</acronym> properties.
+    </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 linkend="glossary-tuple">tuple</glossterm> or
+     <glossterm linkend="glossary-table">table</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-autovacuum">
+   <glossterm>Autovacuum (process)</glossterm>
+   <glossdef>
+    <para>
+     A set of background processes that routinely perform
+     <glossterm linkend="glossary-vacuum">vacuum</glossterm>
+     and <glossterm linkend="glossary-analyze">analyze</glossterm>
+     operations.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="autovacuum"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-backend">
+   <glossterm>Backend (process)</glossterm>
+   <glossdef>
+    <para>
+     Processes of an <glossterm linkend="glossary-instance">instance</glossterm>
+     which act on behalf of client <glossterm linkend="glossary-session">sessions</glossterm>
+     and handle their requests.
+    </para>
+    <para>
+     (Don't confuse this term with the similar terms
+     <glossterm linkend="glossary-background-worker">Background Worker</glossterm> or
+     <glossterm linkend="glossary-background-writer">Background Writer</glossterm>).
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-background-worker">
+   <glossterm>Background Worker (process)</glossterm>
+   <glossdef>
+    <para>
+     Individual processes within an <glossterm linkend="glossary-instance">instance</glossterm>,
+     which run system- or user-supplied code.
+     They provide infrastructure for several features in
+     <productname>PostgreSQL</productname>, such as 
+     <glossterm linkend="glossary-replication">logical replication</glossterm>
+     and <glossterm linkend="glossary-parallel-query">parallel queries</glossterm>.
+     <glossterm linkend="glossary-extension">Extensions</glossterm> can add
+     custom background worker processes, as well.
+   </para>
+   <para>
+    For more information, see
+    <xref linkend="bgworker"/>.
+   </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-background-writer">
+   <glossterm>Background Writer (process)</glossterm>
+   <glossdef>
+    <para>
+     A process that continuously writes dirty pages from
+     <glossterm linkend="glossary-shared-memory">Shared Memory</glossterm> to
+     the file system.  It wakes up periodically, but works only for a short
+     period in order to distribute its expensive <acronym>I/O</acronym>
+     activity over time, instead of generating fewer larger
+     <acronym>I/O</acronym> peaks which could block other processes.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="runtime-config-resource"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-cast">
+   <glossterm>Cast</glossterm>
+   <glossdef>
+    <para>
+     A conversion of a <glossterm linkend="glossary-datum">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 term to
+     indicate what is called a
+     <glossterm linkend="glossary-database">Database</glossterm> in
+     <productname>PostgreSQL</productname>'s terminology.
+    </para>
+    <para>
+     This should not be confused with the
+     <glossterm linkend="glossary-system-catalog">System Catalog</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="manage-ag-overview"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-check-constraint">
+   <glossterm>Check Constraint</glossterm>
+   <glossdef>
+    <para>
+     A type of <glossterm linkend="glossary-constraint">constraint</glossterm>
+     defined on a <glossterm linkend="glossary-relation">relation</glossterm>
+     which restricts the values allowed in one or more
+     <glossterm linkend="glossary-attribute">attributes</glossterm>. The
+     check constraint can make reference to any attribute of the same row in
+     the relation, but cannot reference other rows of the same relation or
+     other relations.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="ddl-constraints"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-checkpointer">
+   <glossterm>Checkpointer (process)</glossterm>
+   <glossdef>
+    <para>
+     A process that writes dirty pages to the file system and creates a special
+     checkpoint WAL 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 has been written.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-checkpoint">
+   <glossterm>Checkpoint</glossterm>
+   <glossdef>
+    <para>
+     A point in the <glossterm linkend="glossary-wal">WAL</glossterm> sequence
+     at which it is guaranteed that the heap and index data files have been
+     updated with all information from
+     <glossterm linkend="glossary-shared-memory">Shared Memory</glossterm>
+     modified before that checkpoint;
+     a <firstterm>checkpoint record</firstterm> is written and flushed to WAL
+     to mark that point.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="wal-configuration"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Class (archaic)</glossterm>
+   <glosssee otherterm="glossary-relation" />
+  </glossentry>
+
+  <glossentry id="glossary-client">
+   <glossterm>Client (process)</glossterm>
+   <glossdef>
+    <para>
+     Any process, possibly remote, that establishes a
+     <glossterm linkend="glossary-session">session</glossterm>
+     by <glossterm linkend="glossary-connection">connecting</glossterm> to an
+     <glossterm linkend="glossary-instance">instance</glossterm>
+     to interact with a <glossterm linkend="glossary-database">database</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-cluster">
+   <glossterm>Cluster</glossterm>
+   <glossdef>
+    <para>
+     A group of <glossterm linkend="glossary-database">Databases</glossterm> plus their
+     <glossterm linkend="glossary-global-sql-object">Global SQL Objects</glossterm>. The
+     <firstterm>cluster</firstterm> is managed by exactly one
+     <glossterm linkend="glossary-instance">Instance</glossterm>. A newly created
+     Cluster will have three databases 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 database aside from these three.
+    </para>
+    <para>
+     Don't confuse the <productname>PostgreSQL</productname>-specific term
+     <glossterm linkend="glossary-cluster">Cluster</glossterm> with the SQL
+     command <command>CLUSTER</command>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-column">
+   <glossterm>Column</glossterm>
+   <glossdef>
+    <para>
+     An <glossterm linkend="glossary-attribute">Attribute</glossterm> found in
+     a <glossterm linkend="glossary-table">Table</glossterm> or
+     <glossterm linkend="glossary-view">View</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-commit">
+   <glossterm>Commit</glossterm>
+   <glossdef>
+    <para>
+     The act of finalizing a
+     <glossterm linkend="glossary-transaction">transaction</glossterm> within
+     the <glossterm linkend="glossary-database">Database</glossterm>, which
+     makes it visible to other transactions and assures its
+     <glossterm linkend="glossary-durability">durability</glossterm>.
+    </para>
+   <para>
+    For more information, see
+    <xref linkend="sql-commit"/>.
+   </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-concurrency">
+   <glossterm>Concurrency</glossterm>
+   <glossdef>
+    <para>
+     The concept that multiple independent operations happen within the
+     <glossterm linkend="glossary-database">Database</glossterm> at the same time.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-connection">
+   <glossterm>Connection</glossterm>
+   <glossdef>
+    <para>
+     An established line of communication between a client process and a
+     <glossterm linkend="glossary-backend">backend</glossterm> process,
+     usually over a network, supporting a
+     <glossterm linkend="glossary-session">session</glossterm>.  This term is
+     sometimes used as a synonym for session.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="runtime-config-connection"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-consistency">
+   <glossterm>Consistency</glossterm>
+   <glossdef>
+    <para>
+     The property that the data in the
+     <glossterm linkend="glossary-database">database</glossterm>
+     is always in compliance with
+     <glossterm linkend="glossary-constraint">integrity constraints</glossterm>.
+     Transactions may be allowed to violate some of the constraints
+     transiently before it commits, but if such violations are not fixed
+     by the time it commits, such transaction is automatically
+     <glossterm linkend="glossary-rollback">rolled back</glossterm>.
+     This is one of the <acronym>ACID</acronym> properties.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-constraint">
+   <glossterm>Constraint</glossterm>
+   <glossdef>
+    <para>
+     A restriction on the values of data allowed within a
+     <glossterm linkend="glossary-table">Table</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="ddl-constraints"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Data Area</glossterm>
+   <glosssee otherterm="glossary-data-directory" />
+  </glossentry>
+
+  <glossentry id="glossary-data-directory">
+   <glossterm>Data Directory</glossterm>
+   <glossdef>
+    <para>
+     The base directory on the filesystem of a
+     <glossterm linkend="glossary-server">Server</glossterm> that contains all
+     data files and subdirectories associated with a
+     <glossterm linkend="glossary-cluster">Cluster</glossterm> with the
+     exception of <glossterm linkend="glossary-tablespace">tablespaces</glossterm>.
+     The environment variable <literal>PGDATA</literal> is commonly used to
+     refer to the
+     <glossterm linkend="glossary-data-directory">data directory</glossterm>.
+    </para>
+    <para>
+     An <glossterm linkend="glossary-instance">instance</glossterm>'s storage
+     space comprises the data directory plus any additional tablespaces.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="storage-file-layout"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-database">
+   <glossterm>Database</glossterm>
+   <glossdef>
+    <para>
+     A named collection of
+     <glossterm linkend="glossary-sql-object">SQL Object</glossterm>s.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="manage-ag-overview"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Database Server</glossterm>
+   <glosssee otherterm="glossary-instance" />
+  </glossentry>
+
+  <glossentry id="glossary-datum">
+   <glossterm>Datum</glossterm>
+   <glossdef>
+    <para>
+     The internal representation of one value of a <acronym>SQL</acronym>
+     data type.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-delete">
+   <glossterm>Delete</glossterm>
+   <glossdef>
+    <para>
+     A <acronym>SQL</acronym> command which removes
+     <glossterm linkend="glossary-tuple">Row</glossterm>s from a given
+     <glossterm linkend="glossary-table">Table</glossterm>
+     or <glossterm linkend="glossary-relation">Relation</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-delete"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-durability">
+   <glossterm>Durability</glossterm>
+   <glossdef>
+    <para>
+     The assurance that once a
+     <glossterm linkend="glossary-transaction">transaction</glossterm> has
+     been <glossterm linkend="glossary-commit">Committed</glossterm>, the
+     changes remain even after a system failure or crash.
+     This is one of the <acronym>ACID</acronym> properties. 
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-extension">
+   <glossterm>Extension</glossterm>
+   <glossdef>
+    <para>
+     A software add-on package that can be installed on an
+     <glossterm linkend="glossary-instance">instance</glossterm> to
+     get extra features.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="extend-extensions" />.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-file-segment">
+   <glossterm>File Segment</glossterm>
+   <glossdef>
+    <para>
+     A physical file which stores data for a given
+     <glossterm linkend="glossary-heap">Heap</glossterm> or
+     <glossterm linkend="glossary-index">Index</glossterm> object.
+     <glossterm linkend="glossary-file-segment">File Segment</glossterm>s are
+     limited in size by a configuration value and if that size is exceeded, it
+     will be split into multiple physical files.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="storage-file-layout"/>.
+    </para>
+    <para>
+     (Don't confuse this term with the similar term
+     <glossterm linkend="glossary-wal-file">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 linkend="glossary-database">Database</glossterm> so that it appears as if were in local
+     <glossterm linkend="glossary-table">Table</glossterm>(s). With a Foreign Data Wrapper it is
+     possible to define a <glossterm linkend="glossary-foreign-server">Foreign Server</glossterm> and
+     <glossterm linkend="glossary-foreign-table">Foreign Table</glossterm>s.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createforeigndatawrapper"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-foreign-key">
+   <glossterm>Foreign Key</glossterm>
+   <glossdef>
+    <para>
+     A type of <glossterm linkend="glossary-constraint">Constraint</glossterm>
+     defined on one or more <glossterm linkend="glossary-column">Column</glossterm>s
+     in a <glossterm linkend="glossary-table">Table</glossterm> which
+     requires the value(s) in those <glossterm linkend="glossary-column">Column</glossterm>s to
+     identify zero or one <glossterm linkend="glossary-tuple">Row</glossterm>
+     in another (or, infrequently, the same)
+     <glossterm linkend="glossary-table">Table</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-foreign-server">
+   <glossterm>Foreign Server</glossterm>
+   <glossdef>
+    <para>
+     A named collection of
+     <glossterm linkend="glossary-foreign-table">Foreign Table</glossterm>s which
+     all use the same
+     <glossterm linkend="glossary-foreign-data-wrapper">Foreign Data Wrapper</glossterm>
+     and have other configuration values in common.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createserver"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-foreign-table">
+   <glossterm>Foreign Table</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-relation">Relation</glossterm> which appears to have
+     <glossterm linkend="glossary-tuple">rows</glossterm> and
+     <glossterm linkend="glossary-column">columns</glossterm> similar to a
+     regular <glossterm linkend="glossary-table">Table</glossterm>, but will forward
+     requests for data through its
+     <glossterm linkend="glossary-foreign-data-wrapper">Foreign Data Wrapper</glossterm>,
+     which will return <glossterm linkend="glossary-result-set">Result Sets</glossterm>
+     structured according to the definition of the
+     <glossterm linkend="glossary-foreign-table">Foreign Table</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createforeigntable"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-function">
+   <glossterm>Function</glossterm>
+   <glossdef>
+    <para>
+     Any defined transformation of data. Many functions are already defined
+     within <productname>PostgreSQL</productname> itself, but user-defined
+     ones can also be added.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createfunction"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-global-sql-object">
+   <glossterm>Global SQL Object</glossterm>
+   <glossdef>
+    <para>
+     <glossterm linkend="glossary-sql-object">SQL Object</glossterm>s which do
+     not belong to a specific
+     <glossterm linkend="glossary-database">database</glossterm>.
+    </para>
+    <para>
+     These objects are 
+     <glossterm linkend="glossary-role">roles</glossterm>,
+     <glossterm linkend="glossary-tablespace">tablespaces</glossterm>,
+     replication origins, and subscriptions for logical replication.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-grant">
+   <glossterm>Grant</glossterm>
+   <glossdef>
+    <para>
+     A <acronym>SQL</acronym> command that is used to allow
+     <glossterm linkend="glossary-user">User</glossterm>s or <glossterm linkend="glossary-role">Role</glossterm>s to access
+     specific objects within the <glossterm linkend="glossary-database">Database</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-grant"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-heap">
+   <glossterm>Heap</glossterm>
+   <glossdef>
+    <para>
+     Contains the values of <glossterm linkend="glossary-tuple">Row</glossterm>
+     attributes (i.e. the data). The <glossterm linkend="glossary-heap">Heap</glossterm>
+     is realized within <glossterm linkend="glossary-database">Database</glossterm> files.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Host</glossterm>
+   <glosssee otherterm="glossary-server" />
+  </glossentry>
+
+  <glossentry id="glossary-index">
+   <glossterm>Index</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-relation">Relation</glossterm> that contains
+     data derived from a <glossterm linkend="glossary-table">Table</glossterm>
+     (or <glossterm linkend="glossary-relation">Relation</glossterm> types
+     such as a <glossterm linkend="glossary-materialized-view">Materialized View</glossterm>).
+     Its internal structure supports fast retrieval of and access to the original
+     data.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createindex"/>.
+    </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 linkend="glossary-table">Table</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-insert"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-instance">
+   <glossterm>Instance</glossterm>
+   <glossdef>
+    <para>
+     An <glossterm>Instance</glossterm> is a group of processes,
+     its supporting <glossterm linkend="glossary-data-directory">storage space</glossterm>,
+     plus their
+     common <glossterm linkend="glossary-shared-memory">Shared Memory</glossterm>,
+     running on a single <glossterm linkend="glossary-server">Server</glossterm>.
+     The <glossterm linkend="glossary-instance">Instance</glossterm>
+     handles all key features of a <acronym>DBMS</acronym>: read and write
+     access to files and shared memory, assurance of
+     the <acronym>ACID</acronym> paradigm, <acronym>MVCC</acronym>,
+     <glossterm linkend="glossary-connection">Connection</glossterm>s to client programs, backup,
+     recovery, replication, privileges, etc.
+    </para>
+    <para>
+     An <glossterm>Instance</glossterm> manages exactly one
+     <glossterm linkend="glossary-cluster">Cluster</glossterm>.
+    </para>
+    <para>
+     Many <glossterm>Instance</glossterm>s can run on the same server as
+     long as their <acronym>TCP/IP</acronym> ports do not conflict.
+     Different instances on a server may use the
+     same or different versions of <productname>PostgreSQL</productname>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-isolation">
+   <glossterm>Isolation</glossterm>
+   <glossdef>
+    <para>
+     The property that the effects of a transaction are not visible to
+     <glossterm linkend="glossary-concurrency">concurrent transactions</glossterm>
+     before it commits.
+     This is one of the <acronym>ACID</acronym> properties.
+    </para>
+    <para>
+     For more information, see <xref linkend="transaction-iso" />.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-join">
+   <glossterm>Join</glossterm>
+   <glossdef>
+    <para>
+     A <acronym>SQL</acronym> keyword used in <command>SELECT</command> statements for
+     combining data from multiple <glossterm linkend="glossary-relation">Relation</glossterm>s.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-key">
+   <glossterm>Key</glossterm>
+   <glossdef>
+    <para>
+     A means of identifying a <glossterm linkend="glossary-tuple">Row</glossterm> within a
+     <glossterm linkend="glossary-table">Table</glossterm> or <glossterm linkend="glossary-relation">Relation</glossterm> by
+     values contained within one or more <glossterm linkend="glossary-attribute">Attribute</glossterm>s
+     in that <glossterm linkend="glossary-table">Table</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-lock">
+   <glossterm>Lock</glossterm>
+   <glossdef>
+    <para>
+     A mechanism that allows a process to limit or prevent simultaneous
+     access to a resource.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-log-file">
+   <glossterm>Log File</glossterm>
+   <glossdef>
+    <para>
+     <glossterm>Log File</glossterm>s contain human-readable text lines about
+     events. Examples include login failures, long-running queries, etc.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="logfile-maintenance"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-logger">
+   <glossterm>Logger (process)</glossterm>
+   <glossdef>
+    <para>
+     If activated, the
+     <glossterm linkend="glossary-logger">Logger</glossterm> process
+     writes information about database events into the current
+     <glossterm linkend="glossary-log-file">Log File</glossterm>. When reaching certain time- or
+     volume-dependent criteria, a new log file is created.
+     Also called <firstterm>syslogger</firstterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="runtime-config-logging"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-log-record">
+   <glossterm>Log Record</glossterm>
+    <glossdef>
+     <para>
+      Archaic term for a <glossterm linkend="glossary-wal-record">WAL Record</glossterm>.
+     </para>
+    </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-logged">
+   <glossterm>Logged</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-table">Table</glossterm> is considered
+     <glossterm linkend="glossary-logged">Logged</glossterm> if changes to it are sent to the
+     <glossterm linkend="glossary-wal">WAL</glossterm>. By default, all regular
+     <glossterm linkend="glossary-table">Table</glossterm>s are <glossterm linkend="glossary-logged">Logged</glossterm>. A
+     table can be specified as <glossterm linkend="glossary-unlogged">Unlogged</glossterm> either at
+     creation time or via the <command>ALTER TABLE</command> command.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Master (server)</glossterm>
+   <glosssee otherterm="glossary-primary-server" />
+  </glossentry>
+
+  <glossentry id="glossary-materialized">
+   <glossterm>Materialized</glossterm>
+   <glossdef>
+    <para>
+     The act of storing information rather than just the method of accessing
+     the information. This term is used in <glossterm linkend="glossary-materialized-view">Materialized
+     View</glossterm>s, meaning that the data derived from the
+     <glossterm linkend="glossary-view">View</glossterm> is actually stored on disk separately from
+     the sources of that data. When using the term
+     <glossterm linkend="glossary-materialized">Materialized</glossterm> to refer to
+     multi-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 linkend="glossary-relation">Relation</glossterm> that is defined in the same way that
+     a <glossterm linkend="glossary-view">View</glossterm> is, but stores data in the same way
+     that a <glossterm linkend="glossary-table">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
+     <xref linkend="sql-creatematerializedview"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-mvcc">
+   <glossterm>Multi-version concurrency control (MVCC)</glossterm>
+   <glossdef>
+    <para>
+     A mechanism designed to allow several
+     <glossterm linkend="glossary-transaction">transactions</glossterm> to be
+     reading and writing the same rows without one process causing other
+     processes to stall.
+     In <productname>PostgreSQL</productname>, MVCC is implemented by
+     creating copies (<firstterm>versions</firstterm>) of
+     <glossterm linkend="glossary-tuple">tuples</glossterm> as they are
+     modified; after transactions that can see the old versions terminate,
+     those old versions need to be removed.
+    </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>
+   <glossterm>Optimizer</glossterm>
+   <glosssee otherterm="glossary-planner" />
+  </glossentry>
+
+  <glossentry id="glossary-parallel-query">
+   <glossterm>Parallel Query</glossterm>
+   <glossdef>
+    <para>
+     The ability to handle parts of executing a
+     <glossterm linkend="glossary-query">query</glossterm> to take advantage
+     of parallel processes on servers with multiple <acronym>CPU</acronym>s.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-partition">
+   <glossterm>Partition</glossterm>
+   <glossdef>
+    <para>
+     In reference to a <glossterm linkend="glossary-table">Table</glossterm>:
+     A <glossterm linkend="glossary-table">Table</glossterm> that can be queried directly,
+     or via a partitioned table, which is a collection of
+     sub-tables, each capable of holding one defined
+     subset of information that does not overlap with any other
+     table in the collection.
+    </para>
+   </glossdef>
+   <glossdef>
+    <para>
+     In reference to a <glossterm linkend="glossary-window-function">window function</glossterm>:
+     a partition is a definition that identifies which neighboring
+     <glossterm linkend="glossary-tuple">Row</glossterm>s can be considered by the
+     function.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-postmaster">
+   <glossterm>Postmaster (process)</glossterm>
+   <glossdef>
+    <para>
+      The very first process of an <glossterm linkend="glossary-instance">Instance</glossterm>. It
+      starts and manages the other auxiliary processes and creates
+      <glossterm linkend="glossary-backend">backend processes</glossterm>
+      on demand.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="server-start"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-primary-server">
+   <glossterm>Primary (server)</glossterm>
+   <glossdef>
+    <para>
+     When two or more <glossterm linkend="glossary-database">Database</glossterm>s are linked via
+     <glossterm linkend="glossary-replication">Replication</glossterm>, the <glossterm linkend="glossary-server">Server</glossterm>
+     that is considered the authoritative source of information is called
+     the <firstterm>Primary</firstterm>,
+     also known as a <firstterm>master</firstterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-primary-key">
+   <glossterm>Primary Key</glossterm>
+   <glossdef>
+    <para>
+     A special case of a
+     <glossterm linkend="glossary-unique-constraint">unique constraint</glossterm>
+     defined on a
+     <glossterm linkend="glossary-table">Table</glossterm> or other
+     <glossterm linkend="glossary-relation">Relation</glossterm> that also
+     guarantees that all of the
+     <glossterm linkend="glossary-attribute">Attribute</glossterm>s
+     within the <glossterm linkend="glossary-primary-key">Primary Key</glossterm>
+     do not have <glossterm linkend="glossary-null">Null</glossterm> values.
+     As the name implies, there can be only one
+     primary key per table, though it is possible to have multiple unique
+     constraints that also have no null-capable attributes.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-procedure">
+   <glossterm>Procedure</glossterm>
+   <glossdef>
+    <para>
+     A defined set of instructions for manipulating data within a
+     <glossterm linkend="glossary-database">Database</glossterm>.
+     A <glossterm linkend="glossary-procedure">Procedure</glossterm> can
+     be written in a variety of programming languages. They may seem
+     similar to <glossterm linkend="glossary-function">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
+     <xref linkend="sql-createprocedure"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-query">
+   <glossterm>Query</glossterm>
+   <glossdef>
+    <para>
+     A request sent by a client to a <glossterm linkend="glossary-backend">backend</glossterm>,
+     usually to return results or to modify data on the database.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-planner">
+   <glossterm>Query Planner</glossterm>
+   <glossdef>
+    <para>
+     The part of <productname>PostgreSQL</productname> that is devoted to
+     determining (<firstterm>planning</firstterm>) the most efficient way to
+     execute <glossterm linkend="glossary-query">queries</glossterm>.
+     Also known as <firstterm>query optimizer</firstterm>,
+     <firstterm>optimizer</firstterm>, or simply <firstterm>planner</firstterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Record</glossterm>
+   <glosssee otherterm="glossary-tuple" />
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Recycling</glossterm>
+   <glosssee otherterm="glossary-wal-file" />
+  </glossentry>
+
+  <glossentry id="glossary-referential-integrity">
+   <glossterm>Referential Integrity</glossterm>
+   <glossdef>
+    <para>
+     A means of restricting data in one <glossterm linkend="glossary-relation">Relation</glossterm>
+     by a <glossterm linkend="glossary-foreign-key">Foreign Key</glossterm>
+     so that it must have matching data in another
+     <glossterm linkend="glossary-relation">Relation</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-relation">
+   <glossterm>Relation</glossterm>
+   <glossdef>
+    <para>
+     The generic term for all objects in a <glossterm linkend="glossary-database">Database</glossterm>
+     that have a name and a list of <glossterm linkend="glossary-attribute">Attribute</glossterm>s
+     defined in a specific order. <glossterm linkend="glossary-table">Table</glossterm>s,
+     <glossterm linkend="glossary-view">View</glossterm>s, <glossterm linkend="glossary-foreign-table">Foreign Table</glossterm>s,
+     <glossterm linkend="glossary-materialized-view">Materialized View</glossterm>s, and
+     <glossterm linkend="glossary-index">Index</glossterm>es are all relations.
+    </para>
+    <para>
+     <firstterm>Class</firstterm> is an archaic synonym for
+     <firstterm>relation</firstterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-replica">
+   <glossterm>Replica</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-database">Database</glossterm> that is paired with a
+     <glossterm linkend="glossary-primary-server">primary</glossterm>
+     database and is maintaining a copy of some or
+     all of the primary <glossterm linkend="glossary-database">Database</glossterm>'s data. The foremost
+     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 linkend="glossary-primary-server">primary</glossterm> becomes unavailable.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-replication">
+   <glossterm>Replication</glossterm>
+   <glossdef>
+    <para>
+     The act of reproducing data on one <glossterm linkend="glossary-server">Server</glossterm> onto
+     another server called a <glossterm linkend="glossary-replica">Replica</glossterm>. This can take the
+     form of <firstterm>physical replication</firstterm>, where all file
+     changes from one server are copied verbatim,
+     or <firstterm>logical replication</firstterm> where a defined subset
+     of data changes are conveyed using a higher-level representation.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-result-set">
+   <glossterm>Result Set</glossterm>
+   <glossdef>
+    <para>
+     A data structure transmitted from a <glossterm linkend="glossary-backend">Backend Process</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 linkend="glossary-tuple">Row</glossterm>s with the same ordered set of
+     <glossterm linkend="glossary-attribute">Attribute</glossterm>s.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-revoke">
+   <glossterm>Revoke</glossterm>
+   <glossdef>
+    <para>
+     A command to prevent access to a named set of
+     <glossterm linkend="glossary-database">Database</glossterm> objects for a named list of
+     <glossterm linkend="glossary-user">User</glossterm>s and <glossterm linkend="glossary-role">Role</glossterm>s.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-revoke"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-role">
+   <glossterm>Role</glossterm>
+   <glossdef>
+    <para>
+     A collection of access privileges to the
+     <glossterm linkend="glossary-database">Database</glossterm>. <glossterm linkend="glossary-role">Role</glossterm>s are
+     themselves a privilege that can be granted to other roles. This is
+     often done for convenience or to ensure completeness when multiple
+     <glossterm linkend="glossary-user">User</glossterm>s need the same privileges.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createrole"/>.
+    </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 linkend="glossary-transaction">Transaction</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-rollback"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Row</glossterm>
+   <glosssee otherterm="glossary-tuple" />
+  </glossentry>
+
+  <glossentry id="glossary-savepoint">
+   <glossterm>Savepoint</glossterm>
+   <glossdef>
+    <para>
+     A special mark inside the sequence of steps in a
+     <glossterm linkend="glossary-transaction">Transaction</glossterm>. Data modifications after this
+     point in time may be reverted to the time of the savepoint.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-savepoint"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-schema">
+   <glossterm>Schema</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-schema">Schema</glossterm> is a namespace for
+     <glossterm linkend="glossary-sql-object">SQL object</glossterm>s, which all reside in the same
+     <glossterm linkend="glossary-database">database</glossterm>.  Each
+     <glossterm linkend="glossary-sql-object">SQL object</glossterm> must reside in exactly one
+     <glossterm linkend="glossary-schema">Schema</glossterm>.
+    </para>
+    <para>
+     The names of <glossterm linkend="glossary-sql-object">SQL Objects</glossterm>
+     of the same type in the same schema are enforced unique.  There is no
+     restriction on reusing a name in multiple schemas.
+    </para>
+    <para>
+     Many <glossterm linkend="glossary-sql-object">SQL Object</glossterm>s reside in the default
+     <glossterm linkend="glossary-schema">Schema</glossterm> <literal>public</literal>, but it is
+     expected that more schemas are created to hold application-specific
+     <glossterm linkend="glossary-sql-object">SQL Object</glossterm>s.
+    </para>
+   </glossdef>
+   <glossdef>
+    <para>
+     More generically, the term <firstterm>Schema</firstterm> is used to mean all data descriptions
+     (<glossterm linkend="glossary-table">Table</glossterm> definitions,
+     <glossterm linkend="glossary-constraint">Constraint</glossterm>s, comments, etc)
+     for a given <glossterm linkend="glossary-database">Database</glossterm> or
+     subset thereof.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="ddl-schemas"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>Segment</glossterm>
+   <glosssee otherterm="glossary-file-segment" />
+  </glossentry>
+
+  <glossentry id="glossary-select">
+   <glossterm>Select</glossterm>
+   <glossdef>
+    <para>
+     The <acronym>SQL</acronym> command used to query a <glossterm linkend="glossary-database">Database</glossterm>.
+     Normally, <command>SELECT</command>s are not expected to modify the
+     <glossterm linkend="glossary-database">Database</glossterm> in any way, but it is possible that
+     <glossterm linkend="glossary-function">Function</glossterm>s invoked within the query could have
+     side effects that do modify data.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-select"/>.
+    </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 linkend="glossary-database">Database</glossterm>
+     appears to be frozen for the duration of the
+     <glossterm linkend="glossary-transaction">Transaction</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-server">
+   <glossterm>Server</glossterm>
+   <glossdef>
+    <para>
+     A computer on which <productname>PostgreSQL</productname>
+     <glossterm linkend="glossary-instance">instances</glossterm> run.
+     The term <firstterm>server</firstterm> denotes real hardware, a
+     container, or a Virtual Machine.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-session">
+   <glossterm>Session</glossterm>
+   <glossdef>
+    <para>
+     A state that allows a client and a backend to interact,
+     communicating over a <glossterm linkend="glossary-connection">connection</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-sequence">
+   <glossterm>Sequence</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-database">Database</glossterm> object which
+     represents the mathematical concept of a numerical integral sequence.
+     It can be thought of as a <glossterm linkend="glossary-table">Table</glossterm>
+     with exactly one <glossterm linkend="glossary-tuple">Row</glossterm> and
+     one <glossterm linkend="glossary-column">Column</glossterm>. The
+     value stored is known as the current value. A
+     <glossterm linkend="glossary-sequence">Sequence</glossterm> has a defined
+     direction (usually increasing) and an interval step (usually 1).
+     Whenever the <literal>NEXTVAL</literal> pseudo-column of a
+     <glossterm linkend="glossary-sequence">Sequence</glossterm> is accessed,
+     the current value is moved in the defined direction by the defined
+     interval step, 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 linkend="glossary-sequence">Sequence</glossterm> are never
+     reverted, even in the case of a
+     <glossterm linkend="glossary-rollback">Rollback</glossterm>, which means
+     that the <glossterm linkend="glossary-sequence">Sequence</glossterm>
+     will never generate the same number twice, which makes it useful for
+     generating
+     <glossterm linkend="glossary-primary-key">Primary Key</glossterm> values.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createsequence"/>.
+    </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 linkend="glossary-instance">Instance</glossterm>. It mirrors parts of
+     <glossterm linkend="glossary-database">Database</glossterm> files, provides an area for
+     <glossterm linkend="glossary-wal-record">WAL Record</glossterm>s, and stores additional common
+     information. Note that <glossterm linkend="glossary-shared-memory">Shared Memory</glossterm> belongs to
+     the complete <glossterm linkend="glossary-instance">Instance</glossterm>, not to a single
+     <glossterm linkend="glossary-database">Database</glossterm>.
+    </para>
+    <para>
+     <glossterm linkend="glossary-shared-memory">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
+     <xref linkend="runtime-config-resource-memory"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-sql-object">
+   <glossterm>SQL Object</glossterm>
+    <glossdef>
+     <para>
+      A <glossterm linkend="glossary-table">table</glossterm>,
+      <glossterm linkend="glossary-view">view</glossterm>,
+      <glossterm linkend="glossary-materialized-view">materialized view</glossterm>,
+      <glossterm linkend="glossary-index">index</glossterm>,
+      <glossterm linkend="glossary-constraint">constraint</glossterm>,
+      <glossterm linkend="glossary-sequence">sequence</glossterm>,
+      <glossterm linkend="glossary-function">function</glossterm>,
+      <glossterm linkend="glossary-procedure">procedure</glossterm>,
+      <glossterm linkend="glossary-trigger">trigger</glossterm>,
+      data type, or operator. Every one of those SQL objects
+      belong to exactly one <glossterm linkend="glossary-schema">Schema</glossterm>.
+    </para>
+    <para>
+     There also exist SQL objects that do not belong to schemas; those include
+     <glossterm linkend="glossary-extension">extensions</glossterm>,
+     <glossterm linkend="glossary-cast">data type cases</glossterm>,
+     and
+     <glossterm linkend="glossary-foreign-data-wrapper">foreign data wrappers</glossterm>.
+    </para>
+    <para>
+      For more information, see
+      <xref linkend="manage-ag-overview"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-stats-collector">
+   <glossterm>Stats Collector</glossterm>
+   <glossdef>
+    <para>
+     This process collects statistical information about the
+     <glossterm linkend="glossary-cluster">Cluster</glossterm>'s activities.
+    </para>
+    <para>
+      For more information, see
+      <xref linkend="monitoring-stats"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-system-catalog">
+   <glossterm>System Catalog</glossterm>
+   <glossdef>
+    <para>
+     A collection of <glossterm linkend="glossary-table">Table</glossterm>s and
+     <glossterm linkend="glossary-view">View</glossterm>s which describe the structure of all
+     <acronym>SQL</acronym> objects of the <glossterm linkend="glossary-database">Database</glossterm>
+     and the <glossterm linkend="glossary-global-sql-object">Global SQL Object</glossterm>s of the
+     <glossterm linkend="glossary-cluster">Cluster</glossterm>. The <glossterm linkend="glossary-system-catalog">System
+     Catalog</glossterm> resides in the schema
+     <literal>pg_catalog</literal>. Main parts are mirrored as
+     <glossterm linkend="glossary-view">View</glossterm>s in the <glossterm linkend="glossary-schema">Schema</glossterm>
+     <literal>information_schema</literal>.
+    </para>
+    <para>
+      For more information, see
+      <xref linkend="ddl-schemas"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-table">
+   <glossterm>Table</glossterm>
+   <glossdef>
+    <para>
+     A collection of <glossterm linkend="glossary-tuple">tuples</glossterm> having
+     a common data structure (the same number of
+     <glossterm linkend="glossary-attribute">attributes</glossterm>, in the same
+     order, having the same name and type per position).
+     A table is the most common form of
+     <glossterm linkend="glossary-relation">Relation</glossterm> in
+     <productname>PostgreSQL</productname>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createtable"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-tablespace">
+   <glossterm>Tablespace</glossterm>
+   <glossdef>
+    <para>
+     A named location on the server filesystem. All <glossterm linkend="glossary-sql-object">SQL Object</glossterm>s
+     which require storage beyond their definition in the
+     <glossterm linkend="glossary-system-catalog">System Catalog</glossterm>
+     must belong to a single tablespace.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="manage-ag-tablespaces"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-temporary-table">
+   <glossterm>Temporary Table</glossterm>
+   <glossdef>
+    <para>
+     <glossterm linkend="glossary-table">Table</glossterm>s that exist either
+     for the lifetime of a
+     <glossterm linkend="glossary-session">Session</glossterm> or a
+     <glossterm linkend="glossary-transaction">Transaction</glossterm>, as
+     specified at the time of creation. The data in them is not visible to
+     other sessions, and is not
+     <glossterm linkend="glossary-logged">Logged</glossterm>.
+     Temporary tables are often used to store intermediate data for a
+     multi-step operation.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createtable"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-transaction">
+   <glossterm>Transaction</glossterm>
+   <glossdef>
+    <para>
+     A combination of commands that must act as a single
+     <glossterm linkend="glossary-atomic">Atomic</glossterm> command: they all
+     succeed or all fail as a single unit, and their effects are not visible to
+     other <glossterm linkend="glossary-session">Session</glossterm>s until
+     the transaction is complete.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="transaction-iso"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-trigger">
+   <glossterm>Trigger</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-function">Function</glossterm> which can be defined to execute
+     whenever a certain operation (<command>INSERT</command>,
+     <command>UPDATE</command>, <command>DELETE</command>,
+     <command>TRUNCATE</command>) is applied to a <glossterm linkend="glossary-relation">Relation</glossterm>.
+     A <glossterm linkend="glossary-trigger">Trigger</glossterm>
+     executes within the same <glossterm linkend="glossary-transaction">Transaction</glossterm> as the
+     statement which invoked it, and if the <glossterm linkend="glossary-function">Function</glossterm>
+     fails, then the invoking statement also fails.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createtrigger"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-tuple">
+   <glossterm>Tuple</glossterm>
+   <glossdef>
+    <para>
+     A collection of <glossterm linkend="glossary-attribute">Attribute</glossterm>s in a fixed order.
+     That order may be defined by the <glossterm linkend="glossary-table">Table</glossterm> where
+     the <glossterm linkend="glossary-tuple">Tuple</glossterm> is found, in which case the
+     <glossterm linkend="glossary-tuple">Tuple</glossterm> is often called a
+     row or record.
+     It may also be defined by the structure of a
+     <glossterm linkend="glossary-result-set">Result Set</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-unique-constraint">
+   <glossterm>Unique Constraint</glossterm>
+   <glossdef>
+    <para>
+     A type of <glossterm linkend="glossary-constraint">constraint</glossterm>
+     defined on a <glossterm linkend="glossary-relation">relation</glossterm>
+     which restricts the values allowed in one or a combination of columns
+     so that each value or combination of values can only appear once in the
+     relation &mdash; that is, no other row in the relation contains values
+     that are equal to those.
+    </para>
+    <para>
+     Because <glossterm linkend="glossary-null">null values</glossterm> are
+     not considered equal to each other, multiple rows with null values are
+     allowed to exist without violating the unique constraint.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-unlogged">
+   <glossterm>Unlogged</glossterm>
+   <glossdef>
+    <para>
+     Changes to an unlogged <glossterm linkend="glossary-relation">Relation</glossterm>
+     are not reflected in the <glossterm linkend="glossary-wal">WAL</glossterm>.
+     This disables replication and crash recovery for these relations.
+    </para>
+    <para>
+     The primary use of unlogged tables is for storing
+     transient work data that must be shared across processes.
+    </para>
+    <para>
+     <glossterm linkend="glossary-temporary-table">Temporary Table</glossterm>s are always unlogged.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-update">
+   <glossterm>Update</glossterm>
+   <glossdef>
+    <para>
+     A <acronym>SQL</acronym> command used to modify
+     <glossterm linkend="glossary-tuple">rows</glossterm>
+     that may already exist in a specified <glossterm linkend="glossary-table">Table</glossterm>.
+     It cannot create or remove rows.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-update"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-user">
+   <glossterm>User</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-role">Role</glossterm> that has the <literal>LOGIN</literal>
+     privilege is said to be a <glossterm linkend="glossary-user">User</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-user-mapping">
+   <glossterm>User Mapping</glossterm>
+   <glossdef>
+    <para>
+     The translation of login credentials in the local
+     <glossterm linkend="glossary-database">Database</glossterm> to credentials
+     in a remote data system defined by a
+     <glossterm linkend="glossary-foreign-data-wrapper">Foreign Data Wrapper</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createusermapping"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-vacuum">
+   <glossterm>Vacuum</glossterm>
+   <glossdef>
+    <para>
+     The process of removing outdated <glossterm linkend="glossary-tuple">tuple
+     versions</glossterm> from tables, and other closely related
+     garbage-collection-like processing required by <productname>PostgreSQL</productname>'s
+     implementation of <glossterm linkend="glossary-mvcc">MVCC</glossterm>.
+     This can be initiated through the use of
+     the <command>VACUUM</command> command, but can also be handled automatically
+     via <glossterm linkend="glossary-autovacuum">Autovacuum</glossterm> processes.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="routine-vacuuming"/> .
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-view">
+   <glossterm>View</glossterm>
+   <glossdef>
+    <para>
+     A <glossterm linkend="glossary-relation">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 linkend="glossary-view">View</glossterm>, the
+     definition of the <glossterm linkend="glossary-view">View</glossterm> is substituted into the
+     query as if the user had typed that subquery instead of the name of
+     the <glossterm linkend="glossary-view">View</glossterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="sql-createview"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-wal-archiver">
+   <glossterm>WAL Archiver (process)</glossterm>
+   <glossdef>
+    <para>
+     A process that saves copies of <glossterm linkend="glossary-wal-file">WAL File</glossterm>s
+     for the purposes of creating backups or keeping
+     <glossterm linkend="glossary-replica">Replica</glossterm>s current.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="continuous-archiving"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-wal-file">
+   <glossterm>WAL File</glossterm>
+   <glossdef>
+    <para>
+     Also known as <firstterm>WAL segment</firstterm> or
+     <firstterm>WAL segment file</firstterm>.
+     Each of the numerically-numbered files that provide storage space for
+     <glossterm linkend="glossary-wal">WAL</glossterm>.
+     The files are all of the same predefined size
+     and are written in sequential order, interspersing changes
+     as they occur in multiple simultaneous sessions.
+     If the system crashes, the files are read in order, and each of the
+     changes are replayed to restore the system to the state as it was
+     before the crash.
+    </para>
+    <para>
+     Each WAL file can be released after a
+     <glossterm linkend="glossary-checkpoint">checkpoint</glossterm>
+     writes all the changes in it to the corresponding data files.
+     Releasing the file can be done either by deleting it, or by changing its
+     name so that it will be used in the future, which is called
+     <firstterm>recycling</firstterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="wal-internals"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>WAL</glossterm>
+   <glosssee otherterm="glossary-wal" />
+  </glossentry>
+
+  <glossentry id="glossary-wal-record">
+   <glossterm>WAL Record</glossterm>
+   <glossdef>
+    <para>
+     A low-level description of an individual data change.
+     It contains sufficient information for the data change to be
+     re-executed (<firstterm>replayed</firstterm>) in case a system failure
+     causes the change to be lost.
+     WAL records use a non-printable binary format.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="wal-internals"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry>
+   <glossterm>WAL Segment</glossterm>
+   <glosssee otherterm="glossary-wal-file" />
+  </glossentry>
+
+  <glossentry id="glossary-wal-writer">
+  <glossterm>WAL Writer (process)</glossterm>
+  <glossdef>
+   <para>
+    A process that writes <glossterm linkend="glossary-wal-record">WAL records</glossterm>
+    from <glossterm id="linkend-shared-memory">shared memory</glossterm> to
+    <glossterm id="linkend-wal-file">WAL files</glossterm>.
+   </para>
+   <para>
+    For more information, see
+    <xref linkend="runtime-config-wal"/>.
+   </para>
+  </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-window-function">
+   <glossterm>Window Function</glossterm>
+   <glossdef>
+    <para>
+     A type of <glossterm linkend="glossary-function">function</glossterm> whose
+     result is based on values found in
+     <glossterm linkend="glossary-tuple">rows</glossterm> of the same
+     <glossterm linkend="glossary-partition">partition</glossterm>.
+     All <glossterm linkend="glossary-aggregate">aggregate functions</glossterm>
+     can be used as window functions, but window functions can also be
+     used to, for example, give ranks to each of the rows in the partition.
+     Also known as <firstterm>analytic functions</firstterm>.
+    </para>
+    <para>
+     For more information, see
+     <xref linkend="tutorial-window"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
+  <glossentry id="glossary-wal">
+   <glossterm>Write-Ahead Log</glossterm>
+   <glossdef>
+    <para>
+     The journal that keeps track of the changes in the
+     <glossterm linkend="glossary-instance">Instance</glossterm> as user- and system-invoked
+     operations take place.  It comprises many individual
+     <glossterm linkend="glossary-wal-record">WAL records</glossterm> written
+     sequentially to <glossterm linkend="glossary-wal-file">WAL files</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+ </glosslist>
+</appendix>
diff --git a/doc/src/sgml/postgres.sgml b/doc/src/sgml/postgres.sgml
index 1f7bd32878..ba3d626102 100644
--- a/doc/src/sgml/postgres.sgml
+++ b/doc/src/sgml/postgres.sgml
@@ -278,6 +278,7 @@
   &docguide;
   &limits;
   &acronyms;
+  &glossary;
   &color;
 
  </part>
