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 <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Indecision is a decision. Inaction is an action. Mark Batterson