In PostgreSQL 9.2 hatte ich kein Problem damit, einen Index zu erstellen, der sowohl einen Geografie-Typ (PostGIS) als auch eine Ganzzahl als zusammengesetzten Index hatte. Aber jetzt (9.6) beschwert es sich über die Erstellung des Index und ich verstehe den Hinweis, den es gibt, nicht:
Die Spalten und Daten werden alle ordnungsgemäß erstellt. Postgres beschwert sich über den Erstellungsindex.
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.
Die Schemadefinition lautet wie folgt:
- 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);
quelle