50.4. pg_amop#
50.4. pg_amop #
Каталог pg_amop хранит информацию о
операторах, связанных с семействами операторов метода доступа. Для каждого
оператора, являющегося членом семейства операторов, в каталоге хранится одна
строка. Член семейства может быть либо оператором поиска, либо
оператором упорядочивания. Оператор
может принадлежать более чем одному семейству, но не может находиться в более чем одной
позиции поиска или более чем одной позиции упорядочивания внутри семейства.
(Однако, хотя и маловероятно, оператор может использоваться и для поиска, и для упорядочивания).
Таблица 50.4. pg_amop Колонки
Тип столбца Описание |
|---|
Идентификатор строки |
Семейство операторов, для которого предназначена эта запись |
Тип данных левого операнда |
Тип данных правого операнда оператора |
Номер стратегии оператора |
Цель оператора, либо |
OID оператора |
Операторная семья индексного метода доступа предназначена для |
Семейство операторов B-дерева, по которому сортируется данный элемент, если это оператор сортировки; ноль, если это оператор поиска |
Запись оператора “поиска” указывает на то, что индекс данного
семейства операторов можно использовать для поиска всех строк, удовлетворяющих
WHERE
indexed_column
operator
constant.
Очевидно, что такой оператор должен возвращать boolean, и соответствующий тип левого операнда
должен соответствовать типу данных столбца индекса.
Запись оператора “ordering” указывает, что индекс этой
семьи операторов может быть просканирован для возврата строк в порядке, представленном
ORDER BY
indexed_column
operator
constant.
Такой оператор может возвращать любой сортируемый тип данных, хотя
тип данных левого операнда должен соответствовать типу данных столбца индекса.
Точная семантика ORDER BY определяется
столбцом amopsortfamily, который должен ссылаться
на семейство операторов B-дерева для типа результата оператора.
Примечание
В настоящее время предполагается, что порядок сортировки для оператора сортировки является значением по умолчанию для соответствующей семьи операторов, то есть ASC NULLS LAST. В будущем это может быть изменено путем добавления дополнительных столбцов для явного указания параметров сортировки.
Вход amopmethod записи должен соответствовать
opfmethod ее содержащей семье операторов (включая
amopmethod здесь намеренно денормализована
структура каталога в целях повышения производительности). Кроме того,
amoplefttype и amoprighttype должны соответствовать
полям oprleft и oprright ссылочной записи
pg_operator.