В PostgreSQL 9.2 у меня не было проблем с созданием индекса, который имел как географический тип (postGIS), так и целое число в качестве составного индекса. Но теперь (9.6) он жалуется на создание индекса, и я не понимаю подсказку, которую он предоставляет:
Все столбцы и данные созданы правильно, Postgres жалуется на индекс создания.
ERROR: data type integer has no default operator class for access method "gist"
HINT: You must specify an operator class for the index
or define a default operator class for the data type.
********** Error**********
ERROR: data type integer has no default operator class for access method "gist"
SQL state: 42704
Hint: You must specify an operator class for the index
or define a default operator class for the data type.
Определение схемы выглядит следующим образом:
- Table: portal.inventory
-- DROP TABLE portal.inventory;
CREATE TABLE portal.inventory
(
type character varying,
pid integer,
size bigint,
date timestamp without time zone,
path character varying,
outline geography(Polygon,4326)
)
WITH (
OIDS=FALSE
);
ALTER TABLE portal.inventory
OWNER TO postgres;
-- Index: portal.inventory_compound_idx
-- DROP INDEX portal.inventory_compound_idx;
CREATE INDEX inventory_compound_idx
ON portal.inventory
USING gist
(outline, pid);
-- Index: portal.inventory_icompound_idx
-- DROP INDEX portal.inventory_icompound_idx;
CREATE INDEX inventory_icompound_idx
ON portal.inventory
USING gist
(pid, outline);
источник