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

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 树算子族进行排序(如果为排序算子);如果为搜索算子,则为零


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

一个 排序 算符条目表示可以扫描此算符系列的一个索引,以按 ORDER BY indexed_column operator constant 所表示的顺序返回行。此类算符可以返回任何可排序的数据类型,尽管其左操作数的输入类型也必须与索引的列数据类型匹配。ORDER BY 的确切语义由 amopsortfamily 所指定,它必须引用针对该算符结果类型的 B 树算符系列。

注意

目前,排序算符的排序顺序假定是所引用算符系列的默认顺序,即 ASC NULLS LAST。以后可能会解除此限制,通过添加额外的列来明确指定排序选项。

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