Я перехожу из mysql в postgres и у меня возникают проблемы при создании индекса.
СОЗДАТЬ ИНДЕКС pointsloc ON В таблице ИСПОЛЬЗОВАТЬ gist (point_col);
Это ответ, который я получаю:
ОШИБКА: точка типа данных не имеет класса оператора по умолчанию для метода доступа "gist"
СОВЕТ: Вы должны указать класс операторов для индекса или определить класс операторов по умолчанию для типа данных.
Я видел, что мне нужно указать класс операторов для индекса, могут использоваться разные классы в зависимости от типа операторов, которые вы хотите использовать в столбце. Я хочу использовать @> или ~, чтобы определить, находится ли точка внутри многоугольника.
Как мне указать класс операторов? Помогите, пожалуйста, быть простой вещью, но я в тупике!
EDIT
Ниже приведен экран, на котором я пытаюсь добавить индекс в таблицу ветвей:
Table "public.branch"
Column | Type | Modifiers
------------------+------------------+-----------------------------------------------------
id | integer | not null default nextval('branch_id_seq'::regclass)
name | character(120) |
center_point_lat | double precision |
center_point_lng | double precision |
center_point | point |
Indexes:
"branch_pkey" PRIMARY KEY, btree (id)
paul=# create index pt_idx on branch using gist (center_point);
ERROR: data type point 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.