I am using GIN indexes with the pg_trgm
module for indexing varchar
fields. So, to define an index I have to write something like this:
CREATE INDEX gin_field_idx ON table_name USING gin (field gin_trgm_ops);
If I exclude the operator class (git_trgm_ops
) and write:
CREATE INDEX gin_field_idx ON table_name USING gin (field);
PostgreSQL will raise an error:
ERROR: data type character varying has no default operator class for
access method "gin"
HINT: You must specify an operator class for the
index or define a default operator class for the data type.
How do I define a default operator method from the module?
This does not help. It describes how to define a new operator class from extension operators and functions. But I have to define the default operator class from a module.
Any help will be appreciated :-).
Best Answer
you can update the pg_opclass table and set the default.
pg_trgm doesn't do this by default as you might have/want a different GIN default.
than you can create an index: