In order to define a GIN index on an array and scalar field (for example) you need to enable the btree_gin
extension in PostgreSQL. Then you can define your indexes as a GIN index.
However I don't understand if, under the hood, PostgreSQL is using a btree structure or a GIN structure.
2 Answers 2
Both. GIN indexes internally make use of a btree data structure. It is not identical to the btree data structure used in a proper BTREE index, but they share the same principles.
The resulting index is a true blood GIN index. These operator classes are not installed by default because they are rarely needed.
A single-column GIN index on a column of scalar type would be inferior to a B-tree index in almost every way.
Explore related questions
See similar questions with these tags.