<!-- doc/src/sgml/brin.sgml -->
-<chapter id="brin">
+<sect1 id="brin">
<title>BRIN Indexes</title>
<indexterm>
<secondary>BRIN</secondary>
</indexterm>
-<sect1 id="brin-intro">
+<sect2 id="brin-intro">
<title>Introduction</title>
<para>
be more precise and more data blocks can be skipped during an index scan.
</para>
- <sect2 id="brin-operation">
+ <sect3 id="brin-operation">
<title>Index Maintenance</title>
<para>
See <xref linkend="functions-admin-index"/> for details.
</para>
- </sect2>
-</sect1>
+ </sect3>
+</sect2>
-<sect1 id="brin-builtin-opclasses">
+<sect2 id="brin-builtin-opclasses">
<title>Built-in Operator Classes</title>
<para>
</tgroup>
</table>
- <sect2 id="brin-builtin-opclasses--parameters">
+ <sect3 id="brin-builtin-opclasses--parameters">
<title>Operator Class Parameters</title>
<para>
</varlistentry>
</variablelist>
- </sect2>
+ </sect3>
-</sect1>
+</sect2>
-<sect1 id="brin-extensibility">
+<sect2 id="brin-extensibility">
<title>Extensibility</title>
<para>
<literal>float4_minmax_ops</literal> as an example of minmax, and
<literal>box_inclusion_ops</literal> as an example of inclusion.
</para>
+</sect2>
</sect1>
-</chapter>
<!-- doc/src/sgml/btree.sgml -->
-<chapter id="btree">
+<sect1 id="btree">
<title>B-Tree Indexes</title>
<indexterm>
<secondary>B-Tree</secondary>
</indexterm>
-<sect1 id="btree-intro">
+<sect2 id="btree-intro">
<title>Introduction</title>
<para>
btree <acronym>AM</acronym> make use of them.
</para>
-</sect1>
+</sect2>
-<sect1 id="btree-behavior">
+<sect2 id="btree-behavior">
<title>Behavior of B-Tree Operator Classes</title>
<para>
planner relies on them for optimization purposes.
</para>
-</sect1>
+</sect2>
-<sect1 id="btree-support-funcs">
+<sect2 id="btree-support-funcs">
<title>B-Tree Support Functions</title>
<para>
</varlistentry>
</variablelist>
-</sect1>
+</sect2>
-<sect1 id="btree-implementation">
+<sect2 id="btree-implementation">
<title>Implementation</title>
<para>
distribution for a much more detailed, internals-focused description
of the B-Tree implementation.
</para>
- <sect2 id="btree-structure">
+ <sect3 id="btree-structure">
<title>B-Tree Structure</title>
<para>
<productname>PostgreSQL</productname> B-Tree indexes are
the tree structure by creating a new root page that is one level
above the original root page.
</para>
- </sect2>
+ </sect3>
- <sect2 id="btree-deletion">
+ <sect3 id="btree-deletion">
<title>Bottom-up Index Deletion</title>
<para>
B-Tree indexes are not directly aware that under MVCC, there might
two logical rows whose lifetimes span the same
<command>VACUUM</command> cycle).
</para>
- </sect2>
+ </sect3>
- <sect2 id="btree-deduplication">
+ <sect3 id="btree-deduplication">
<title>Deduplication</title>
<para>
A duplicate is a leaf page tuple (a tuple that points to a table
</itemizedlist>
</para>
- </sect2>
-</sect1>
+ </sect3>
+</sect2>
-</chapter>
+</sect1>
<!ENTITY catalogs SYSTEM "catalogs.sgml">
<!ENTITY system-views SYSTEM "system-views.sgml">
<!ENTITY geqo SYSTEM "geqo.sgml">
+<!ENTITY indextypes SYSTEM "indextypes.sgml">
<!ENTITY btree SYSTEM "btree.sgml">
<!ENTITY gist SYSTEM "gist.sgml">
<!ENTITY spgist SYSTEM "spgist.sgml">
<!-- doc/src/sgml/gin.sgml -->
-<chapter id="gin">
+<sect1 id="gin">
<title>GIN Indexes</title>
<indexterm>
<secondary>GIN</secondary>
</indexterm>
-<sect1 id="gin-intro">
+<sect2 id="gin-intro">
<title>Introduction</title>
<para>
information about <acronym>GIN</acronym> on their
<ulink url="http://www.sai.msu.su/~megera/wiki/Gin">website</ulink>.
</para>
-</sect1>
+</sect2>
-<sect1 id="gin-builtin-opclasses">
+<sect2 id="gin-builtin-opclasses">
<title>Built-in Operator Classes</title>
<para>
See <xref linkend="json-indexing"/> for details.
</para>
-</sect1>
+</sect2>
-<sect1 id="gin-extensibility">
+<sect2 id="gin-extensibility">
<title>Extensibility</title>
<para>
though the actual type might be something else depending on the operator.
</para>
-</sect1>
+</sect2>
-<sect1 id="gin-implementation">
+<sect2 id="gin-implementation">
<title>Implementation</title>
<para>
</mediaobject>
</figure>
- <sect2 id="gin-fast-update">
+ <sect3 id="gin-fast-update">
<title>GIN Fast Update Technique</title>
<para>
<acronym>GIN</acronym> index. See <xref linkend="sql-createindex"/>
for details.
</para>
- </sect2>
+ </sect3>
- <sect2 id="gin-partial-match">
+ <sect3 id="gin-partial-match">
<title>Partial Match Algorithm</title>
<para>
to be searched, or greater than zero if the index key is past the range
that could match.
</para>
- </sect2>
+ </sect3>
-</sect1>
+</sect2>
-<sect1 id="gin-tips">
+<sect2 id="gin-tips">
<title>GIN Tips and Tricks</title>
<variablelist>
</varlistentry>
</variablelist>
-</sect1>
+</sect2>
-<sect1 id="gin-limit">
+<sect2 id="gin-limit">
<title>Limitations</title>
<para>
however that null key values contained within a non-null composite item
or query value are supported.
</para>
-</sect1>
+</sect2>
-<sect1 id="gin-examples">
+<sect2 id="gin-examples">
<title>Examples</title>
<para>
</varlistentry>
</variablelist>
</para>
-</sect1>
+</sect2>
-</chapter>
+</sect1>
<!-- doc/src/sgml/gist.sgml -->
-<chapter id="gist">
+<sect1 id="gist">
<title>GiST Indexes</title>
<indexterm>
<secondary>GiST</secondary>
</indexterm>
-<sect1 id="gist-intro">
+<sect2 id="gist-intro">
<title>Introduction</title>
<para>
<ulink url="http://www.sai.msu.su/~megera/postgres/gist/">web site</ulink>.
</para>
-</sect1>
+</sect2>
-<sect1 id="gist-builtin-opclasses">
+<sect2 id="gist-builtin-opclasses">
<title>Built-in Operator Classes</title>
<para>
</programlisting>
</para>
-</sect1>
+</sect2>
-<sect1 id="gist-extensibility">
+<sect2 id="gist-extensibility">
<title>Extensibility</title>
<para>
will accumulate for the duration of the operation.
</para>
-</sect1>
+</sect2>
-<sect1 id="gist-implementation">
+<sect2 id="gist-implementation">
<title>Implementation</title>
- <sect2 id="gist-buffering-build">
+ <sect3 id="gist-buffering-build">
<title>GiST Index Build Methods</title>
<para>
is ordered.
</para>
- </sect2>
-</sect1>
+ </sect3>
+</sect2>
-<sect1 id="gist-examples">
+<sect2 id="gist-examples">
<title>Examples</title>
<para>
</variablelist>
</para>
-</sect1>
+</sect2>
-</chapter>
+</sect1>
<!-- doc/src/sgml/hash.sgml -->
-<chapter id="hash-index">
+<sect1 id="hash-index">
<title>Hash Indexes</title>
<indexterm>
<secondary>Hash</secondary>
</indexterm>
-<sect1 id="hash-intro">
+<sect2 id="hash-intro">
<title>Overview</title>
<para>
with rapidly increasing number of rows.
</para>
-</sect1>
+</sect2>
-<sect1 id="hash-implementation">
+<sect2 id="hash-implementation">
<title>Implementation</title>
<para>
successfully.
</para>
-</sect1>
+</sect2>
-</chapter>
+</sect1>
--- /dev/null
+ <!-- doc/src/sgml/indextypes.sgml -->
+
+<chapter id="indextypes">
+<title>Built-in Index Access Methods</title>
+
+&btree;
+&gist;
+&spgist;
+&gin;
+&brin;
+&hash;
+
+</chapter>
&indexam;
&generic-wal;
&custom-rmgr;
- &btree;
- &gist;
- &spgist;
- &gin;
- &brin;
- &hash;
+ &indextypes;
&storage;
&transaction;
&bki;
<!-- doc/src/sgml/spgist.sgml -->
-<chapter id="spgist">
+<sect1 id="spgist">
<title>SP-GiST Indexes</title>
<indexterm>
<secondary>SP-GiST</secondary>
</indexterm>
-<sect1 id="spgist-intro">
+<sect2 id="spgist-intro">
<title>Introduction</title>
<para>
<ulink url="http://www.sai.msu.su/~megera/wiki/spgist_dev">web site</ulink>.
</para>
-</sect1>
+</sect2>
-<sect1 id="spgist-builtin-opclasses">
+<sect2 id="spgist-builtin-opclasses">
<title>Built-in Operator Classes</title>
<para>
search over indexed point or polygon data sets.
</para>
-</sect1>
+</sect2>
-<sect1 id="spgist-extensibility">
+<sect2 id="spgist-extensibility">
<title>Extensibility</title>
<para>
<function>PG_GET_COLLATION()</function> mechanism.
</para>
-</sect1>
+</sect2>
-<sect1 id="spgist-implementation">
+<sect2 id="spgist-implementation">
<title>Implementation</title>
<para>
know.
</para>
- <sect2 id="spgist-limits">
+ <sect3 id="spgist-limits">
<title>SP-GiST Limits</title>
<para>
leaf datum does not become any smaller within ten cycles
of <function>choose</function> method calls.
</para>
- </sect2>
+ </sect3>
- <sect2 id="spgist-null-labels">
+ <sect3 id="spgist-null-labels">
<title>SP-GiST Without Node Labels</title>
<para>
for <function>choose</function> to return <literal>spgAddNode</literal>, since the set
of nodes is supposed to be fixed in such cases.
</para>
- </sect2>
+ </sect3>
- <sect2 id="spgist-all-the-same">
+ <sect3 id="spgist-all-the-same">
<title><quote>All-the-Same</quote> Inner Tuples</title>
<para>
depending on how much the <function>inner_consistent</function> function normally
assumes about the meaning of the nodes.
</para>
- </sect2>
+ </sect3>
-</sect1>
+</sect2>
-<sect1 id="spgist-examples">
+<sect2 id="spgist-examples">
<title>Examples</title>
<para>
and <filename>src/backend/utils/adt/</filename> to see the code.
</para>
-</sect1>
+</sect2>
-</chapter>
+</sect1>