On Wed, Aug 17, 2022 at 12:41:03PM -0400, Jeff Janes wrote: > This was recently added to CREATE INDEX reference page: > > + The optional <literal>USING</literal> clause specifies an index > + type as described in <xref linkend="indexes-types"/>. If not > + specified, a default index type will be used based on the > + data types of the columns. > > But I think this is wrong, the default type is BTREE, it does not depend on > the > data type. Or at least, I've never witnessed the claimed behavior. The claim > also conflicts with what is said at https://www.postgresql.org/docs/10/ > indexes-types.html
You are correct --- parser/gram.y has: access_method_clause: USING name { $$ = $2; } | /*EMPTY*/ { $$ = DEFAULT_INDEX_TYPE; } and from include/catalog/index.h: #define DEFAULT_INDEX_TYPE "btree" Patch attached. -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Indecision is a decision. Inaction is an action. Mark Batterson
diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml index 944fdb4b09..cb4b43f637 100644 --- a/doc/src/sgml/ref/create_index.sgml +++ b/doc/src/sgml/ref/create_index.sgml @@ -154,9 +154,8 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class= <listitem> <para> The optional <literal>USING</literal> clause specifies an index - type as described in <xref linkend="indexes-types"/>. If not - specified, a default index type will be used based on the - data types of the columns. + type as described in <xref linkend="indexes-types"/>. The + default is <literal>btree</literal>. </para> </listitem> </varlistentry>