51.4. pg_amop#

51.4. pg_amop

51.4. pg_amop

Каталог pg_amop хранит информацию о операторах, связанных с семействами операторов метода доступа. Для каждого оператора, являющегося членом семейства операторов, в каталоге хранится одна строка. Член семейства может быть либо оператором поиска, либо оператором упорядочивания. Оператор может принадлежать более чем одному семейству, но не может находиться в более чем одной позиции поиска или более чем одной позиции упорядочивания внутри семейства. (Однако, хотя и маловероятно, оператор может использоваться и для поиска, и для упорядочивания).

Таблица 51.4. pg_amop Колонки

Тип столбца

Описание

oid oid

Идентификатор строки

amopfamily oid (ссылается на pg_opfamily.oid)

Семейство операторов, для которого предназначена эта запись

amoplefttype oid (ссылается на pg_type.oid)

Тип данных левого операнда

amoprighttype oid (ссылается на pg_type.oid)

Тип данных правого операнда оператора

amopstrategy int2

Номер стратегии оператора

amoppurpose char

Цель оператора, либо s для поиска, либо o для сортировки

amopopr oid (ссылается на pg_operator.oid)

OID оператора

amopmethod oid (ссылается на pg_am.oid)

Операторная семья индексного метода доступа предназначена для

amopsortfamily oid (ссылается на pg_opfamily.oid)

Семейство операторов B-дерева, по которому сортируется данный элемент, если это оператор сортировки; ноль, если это оператор поиска


A search operator entry indicates that an index of this operator family can be searched to find all rows satisfying WHERE indexed_column operator constant. Obviously, such an operator must return boolean, and its left-hand input type must match the index's column data type.

Запись оператора ordering указывает, что индекс этой семьи операторов может быть просканирован для возврата строк в порядке, представленном ORDER BY indexed_column operator constant. Такой оператор может возвращать любой сортируемый тип данных, хотя тип данных левого операнда должен соответствовать типу данных столбца индекса. Точная семантика ORDER BY определяется столбцом amopsortfamily, который должен ссылаться на семейство операторов B-дерева для типа результата оператора.

Примечание

В настоящее время предполагается, что порядок сортировки для оператора сортировки является значением по умолчанию для соответствующей семьи операторов, то есть ASC NULLS LAST. В будущем это может быть изменено путем добавления дополнительных столбцов для явного указания параметров сортировки.

Вход amopmethod записи должен соответствовать opfmethod ее содержащей семье операторов (включая amopmethod здесь намеренно денормализована структура каталога в целях повышения производительности). Кроме того, amoplefttype и amoprighttype должны соответствовать полям oprleft и oprright ссылочной записи pg_operator.