In PostgreSQL 9.2 non ho avuto problemi a creare un indice che avesse sia un tipo geografico (postGIS) sia un intero come indice composto. Ma ora (9.6) si lamenta della creazione dell'indice e non capisco il suggerimento che sta fornendo:
Le colonne e i dati sono tutti creati correttamente, Postgres si lamenta dell'indice di creazione.
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.
La definizione dello schema è la seguente:
- 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);