Uref
Тип данных uref используется в расширении Qbim как ссылочный тип на различные экземпляры объектов.
В настоящей реализации тип uref используется в поле r_object таблицы action, но также может использоваться в ссылочных полях объектов.
Структура типа uref
Тип данных uref состоит из двух частей:
- идентификатора объекта, представленного типом bigint (obj.id),
- идентификатора экземпляра объекта, представленного типом bigint или uuid («локальным» или «глобальным» соответственно).
Методы для работы с типом uref
Расширение Uref предоставляет семейство функций для работы с типом uref.
Функция |
||
---|---|---|
Описание Пример(ы) |
||
uref_local ( bigint, bigint ) → uref uref ( bigint, bigint ) → uref |
||
Конструктор с локальным идентификатором экземпляра.uref_local(1,34) → 1:34 uref(1,34) → 1:34 |
||
uref_global ( bigint, uuid ) → uref uref ( bigint, uuid ) → uref |
||
Конструктор с глобальным идентификатором экземпляра.uref_global(1,'463404eb-ee5d-4597-b9a9-e3b69e29d18a'::uuid) → 1:463404eb-ee5d-4597-b9a9-e3b69e29d18a uref(1,'463404eb-ee5d-4597-b9a9-e3b69e29d18a'::uuid) → 1:463404eb-ee5d-4597-b9a9-e3b69e29d18a |
||
uref_is_id_local ( uref ) → boolean | ||
Проверка, что идентификатор локальный.uref_is_id_local('1:34'::uref) → true uref_is_id_local('1:463404eb-ee5d-4597-b9a9-e3b69e29d18a'::uref) → false |
||
uref_is_id_global ( uref ) → boolean | ||
Проверка, что идентификатор глобальный.uref_is_id_global('1:34'::uref) → false uref_is_id_global('1:463404eb-ee5d-4597-b9a9-e3b69e29d18a'::uref) → true |
||
uref_obj ( uref ) → bigint | ||
Получение идентификатора объекта.uref_obj('1:34'::uref) → 1 uref_obj('1:463404eb-ee5d-4597-b9a9-e3b69e29d18a'::uref) → 1 |
||
uref_id_local ( uref ) → bigint uref_id_global ( uref ) → uuid |
||
Получение идентификатора экземпляра объекта.uref_id_local('1:34'::uref) → 34 uref_id_global('1:463404eb-ee5d-4597-b9a9-e3b69e29d18a'::uref) → 463404eb-ee5d-4597-b9a9-e3b69e29d18a |
Индексирование полей типа uref
Поля типа uref могут использоваться в индексах btree. Для этого в расширении Uref созданы необходимые операторы и классы операторов.