Re: Decouple operator classes from index access methods - Mailing list pgsql-hackers

From Emre Hasegeli
Subject Re: Decouple operator classes from index access methods
Date
Msg-id CAE2gYzwY3LHoJv43tubEY7Rr0QufUmwd_xLOcONsC5MZWMz5xQ@mail.gmail.com
Whole thread Raw
In response to Re: Decouple operator classes from index access methods  (Alexander Korotkov <aekorotkov@gmail.com>)
Responses Re: Decouple operator classes from index access methods  (Alexander Korotkov <aekorotkov@gmail.com>)
List pgsql-hackers
> In future we could have, for instance, LSM or in-memory B-tree or
> other index AM, which could use existing B-tree or hash opclasses.

This would be easily possible with my patch:

CREATE ACCESS METHOD inmemorybtree
TYPE INDEX HANDLER imbthandler
IMPLEMENTS (ordering);

> But even now, we could use this decoupling to get rid of ugly
> btree_gist and btree_gin.  And also solve the extensibility problem
> here.  If an extension provides datatype with B-tree opclass, we
> currently can't directly use it with GiST and GIN.  So, in order to
> provide B-tree-like indexing for GiST and GIN, an extension needs to
> explicitly define GiST and GIN B-tree-like opclasses.

This would also be possible if we move btree_gist and btree_gin
support functions inside gist and gin access methods.  The access
method support functions get the operator family.  They can find which
access method this operator family belongs to, and call the
appropriate functions if it is "ordering".



pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Using indexUnchanged with nbtree
Next
From: Simon Riggs
Date:
Subject: Re: Doc chapter for Hash Indexes