@@ -16289,6 +16289,18 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
1628916289 <primary>pg_get_viewdef</primary>
1629016290 </indexterm>
1629116291
16292+ <indexterm>
16293+ <primary>pg_index_column_has_property</primary>
16294+ </indexterm>
16295+
16296+ <indexterm>
16297+ <primary>pg_index_has_property</primary>
16298+ </indexterm>
16299+
16300+ <indexterm>
16301+ <primary>pg_indexam_has_property</primary>
16302+ </indexterm>
16303+
1629216304 <indexterm>
1629316305 <primary>pg_options_to_table</primary>
1629416306 </indexterm>
@@ -16476,6 +16488,21 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
1647616488 materialized view; lines with fields are wrapped to specified
1647716489 number of columns, pretty-printing is implied</entry>
1647816490 </row>
16491+ <row>
16492+ <entry><literal><function>pg_index_column_has_property(<parameter>index_oid</parameter>, <parameter>column_no</>, <parameter>prop_name</>)</function></literal></entry>
16493+ <entry><type>boolean</type></entry>
16494+ <entry>test whether an index column has a specified property</entry>
16495+ </row>
16496+ <row>
16497+ <entry><literal><function>pg_index_has_property(<parameter>index_oid</parameter>, <parameter>prop_name</>)</function></literal></entry>
16498+ <entry><type>boolean</type></entry>
16499+ <entry>test whether an index has a specified property</entry>
16500+ </row>
16501+ <row>
16502+ <entry><literal><function>pg_indexam_has_property(<parameter>am_oid</parameter>, <parameter>prop_name</>)</function></literal></entry>
16503+ <entry><type>boolean</type></entry>
16504+ <entry>test whether an index access method has a specified property</entry>
16505+ </row>
1647916506 <row>
1648016507 <entry><literal><function>pg_options_to_table(<parameter>reloptions</parameter>)</function></literal></entry>
1648116508 <entry><type>setof record</type></entry>
@@ -16619,6 +16646,144 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
1661916646 its OID.
1662016647 </para>
1662116648
16649+ <para>
16650+ <function>pg_index_column_has_property</function>,
16651+ <function>pg_index_has_property</function>, and
16652+ <function>pg_indexam_has_property</function> return whether the
16653+ specified index column, index, or index access method possesses the named
16654+ property. <literal>NULL</literal> is returned if the property name is not
16655+ known or does not apply to the particular object, or if the OID or column
16656+ number does not identify a valid object. Refer to
16657+ <xref linkend="functions-info-index-column-props"> for column properties,
16658+ <xref linkend="functions-info-index-props"> for index properties, and
16659+ <xref linkend="functions-info-indexam-props"> for access method properties.
16660+ (Note that extension access methods can define additional property names
16661+ for their indexes.)
16662+ </para>
16663+
16664+ <table id="functions-info-index-column-props">
16665+ <title>Index Column Properties</title>
16666+ <tgroup cols="2">
16667+ <thead>
16668+ <row><entry>Name</entry><entry>Description</entry></row>
16669+ </thead>
16670+ <tbody>
16671+ <row>
16672+ <entry><literal>asc</literal></entry>
16673+ <entry>Does the column sort in ascending order on a forward scan?
16674+ </entry>
16675+ </row>
16676+ <row>
16677+ <entry><literal>desc</literal></entry>
16678+ <entry>Does the column sort in descending order on a forward scan?
16679+ </entry>
16680+ </row>
16681+ <row>
16682+ <entry><literal>nulls_first</literal></entry>
16683+ <entry>Does the column sort with nulls first on a forward scan?
16684+ </entry>
16685+ </row>
16686+ <row>
16687+ <entry><literal>nulls_last</literal></entry>
16688+ <entry>Does the column sort with nulls last on a forward scan?
16689+ </entry>
16690+ </row>
16691+ <row>
16692+ <entry><literal>orderable</literal></entry>
16693+ <entry>Does the column possess any defined sort ordering?
16694+ </entry>
16695+ </row>
16696+ <row>
16697+ <entry><literal>distance_orderable</literal></entry>
16698+ <entry>Can the column be scanned in order by a <quote>distance</>
16699+ operator, for example <literal>ORDER BY col <-> constant</> ?
16700+ </entry>
16701+ </row>
16702+ <row>
16703+ <entry><literal>returnable</literal></entry>
16704+ <entry>Can the column value be returned by an index-only scan?
16705+ </entry>
16706+ </row>
16707+ <row>
16708+ <entry><literal>search_array</literal></entry>
16709+ <entry>Does the column natively support <literal>col = ANY(array)</>
16710+ searches?
16711+ </entry>
16712+ </row>
16713+ <row>
16714+ <entry><literal>search_nulls</literal></entry>
16715+ <entry>Does the column support <literal>IS NULL</> and
16716+ <literal>IS NOT NULL</> searches?
16717+ </entry>
16718+ </row>
16719+ </tbody>
16720+ </tgroup>
16721+ </table>
16722+
16723+ <table id="functions-info-index-props">
16724+ <title>Index Properties</title>
16725+ <tgroup cols="2">
16726+ <thead>
16727+ <row><entry>Name</entry><entry>Description</entry></row>
16728+ </thead>
16729+ <tbody>
16730+ <row>
16731+ <entry><literal>clusterable</literal></entry>
16732+ <entry>Can the index be used in a <literal>CLUSTER</> command?
16733+ </entry>
16734+ </row>
16735+ <row>
16736+ <entry><literal>index_scan</literal></entry>
16737+ <entry>Does the index support plain (non-bitmap) scans?
16738+ </entry>
16739+ </row>
16740+ <row>
16741+ <entry><literal>bitmap_scan</literal></entry>
16742+ <entry>Does the index support bitmap scans?
16743+ </entry>
16744+ </row>
16745+ <row>
16746+ <entry><literal>backward_scan</literal></entry>
16747+ <entry>Can the index be scanned backwards?
16748+ </entry>
16749+ </row>
16750+ </tbody>
16751+ </tgroup>
16752+ </table>
16753+
16754+ <table id="functions-info-indexam-props">
16755+ <title>Index Access Method Properties</title>
16756+ <tgroup cols="2">
16757+ <thead>
16758+ <row><entry>Name</entry><entry>Description</entry></row>
16759+ </thead>
16760+ <tbody>
16761+ <row>
16762+ <entry><literal>can_order</literal></entry>
16763+ <entry>Does the access method support <literal>ASC</>,
16764+ <literal>DESC</> and related keywords in
16765+ <literal>CREATE INDEX</>?
16766+ </entry>
16767+ </row>
16768+ <row>
16769+ <entry><literal>can_unique</literal></entry>
16770+ <entry>Does the access method support unique indexes?
16771+ </entry>
16772+ </row>
16773+ <row>
16774+ <entry><literal>can_multi_col</literal></entry>
16775+ <entry>Does the access method support indexes with multiple columns?
16776+ </entry>
16777+ </row>
16778+ <row>
16779+ <entry><literal>can_exclude</literal></entry>
16780+ <entry>Does the access method support exclusion constraints?
16781+ </entry>
16782+ </row>
16783+ </tbody>
16784+ </tgroup>
16785+ </table>
16786+
1662216787 <para>
1662316788 <function>pg_options_to_table</function> returns the set of storage
1662416789 option name/value pairs
0 commit comments