Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

53.4. pg_amop #

目录 pg_amop 存储与访问方法操作符系列关联的操作符的信息。对于属于操作符系列的每个操作符,都有一行。系列成员可以是 搜索 操作符,也可以是 排序 操作符。一个操作符可以出现在多个系列中,但不能出现在一个系列中的多个搜索位置或多个排序位置。(操作符同时用于搜索和排序目的虽然不太可能,但也是允许的。)

表 53.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 树操作符系列;如果为搜索操作符,则为零


一个 search 运算符条目表示可以搜索此运算符系列的索引以查找满足 WHERE indexed_column operator constant 的所有行。显然,这样的运算符必须返回 boolean,并且其左手输入类型必须与索引的列数据类型匹配。

一个 ordering 运算符条目表示可以扫描此运算符系列的索引以按 ORDER BY indexed_column operator constant 表示的顺序返回行。这样的运算符可以返回任何可排序的数据类型,但同样其左手输入类型必须与索引的列数据类型匹配。 ORDER BY 的确切语义由 amopsortfamily 列指定,该列必须引用运算符结果类型的 B 树运算符系列。

注意

目前,假定排序运算符的排序顺序是所引用运算符系列的默认值,即 ASC NULLS LAST。将来可以通过添加其他列来明确指定排序选项来放松此限制。

条目的 amopmethod 必须与其包含的运算符系列的 opfmethod 匹配(出于性能原因,此处包含 amopmethod 是对目录结构的有意反规范化)。此外,amoplefttypeamoprighttype 必须与所引用的 pg_operator 条目的 oprleftoprright 字段匹配。