2

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.

collimarco
  • 653
  • 2
  • 9
  • 20

2 Answers2

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.

jjanes
  • 42,332
  • 3
  • 44
  • 54
0

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.

Laurenz Albe
  • 61,070
  • 4
  • 55
  • 90