PostgreSQL: Создание индекса для uuid[]
// 25 Березня, 2018 | 1952 переглядів | коментарів (0)
Для начала что такое uuid:
UUID (universally unique identifier) — это стандарт идентификации, используемый в создании программного обеспечения, стандартизированный Open Software Foundation (OSF) как часть DCE — среды распределённых вычислений (Distributed Computing Environment (англ.)). Основное назначение UUID — это позволить распределённым системам уникально идентифицировать информацию без центра координации. Таким образом, любой может создать UUID и использовать его для идентификации чего-либо с приемлемым уровнем уверенности, что данный идентификатор непреднамеренно никогда не будет использован для чего-то ещё. UUID представляет собой 16-байтный (128-битный) номер.
В PostgreSQL, по умолчанию, нет индекса для столбцов массива uuid (uuid[]).
Для примера, вот простая таблица с столбцом массива uuid:
CREATE TABLE someitems ( items uuid[] );
Но когда мы пытаемся создать на нем индекс:
CREATE INDEX someitems_items_index ON someitems USING GIN (items);
Получаем следующую ошибку:
ERROR: data type uuid[] has no default operator class for access method "gin"
Поэтому мы должны создать тип индекса, который понимает, как сравнивать элементы массива uuid (uuid[]).
Читати далі…