pg_amop
#目录 pg_amop
存储与访问方法算子族关联的算子的信息。每个算子都属于某个算子族,这一行会为此表示。族成员可以是 搜索 算子或 排序 算子。一个算子可以在多个族中出现,但不能在一个族中出现多个搜索位置或多个排序位置。(不太可能,但算子同时用于搜索和排序目的也是允许的。)
表 51.4. pg_amop
列
列类型 描述 |
---|
行标识符 |
此条目所属的算子族 |
算子的左手输入数据类型 |
算子的右手输入数据类型 |
算子策略号 |
算子用途,“s”代表搜索,“o”代表排序 |
算子的 OID |
索引访问方法算子族 |
此条目根据该 B 树算子族进行排序(如果为排序算子);如果为搜索算子,则为零 |
一个 “搜索” 算符条目表示可以搜索此算符系列的一个索引,以查找满足 WHERE
indexed_column
operator
constant
的所有行。显然,此类算符必须返回 布尔值
,且其左操作数的输入类型必须与索引的列数据类型匹配。
一个 “排序” 算符条目表示可以扫描此算符系列的一个索引,以按 ORDER BY
indexed_column
operator
constant
所表示的顺序返回行。此类算符可以返回任何可排序的数据类型,尽管其左操作数的输入类型也必须与索引的列数据类型匹配。ORDER BY
的确切语义由 amopsortfamily
所指定,它必须引用针对该算符结果类型的 B 树算符系列。
目前,排序算符的排序顺序假定是所引用算符系列的默认顺序,即 ASC NULLS LAST
。以后可能会解除此限制,通过添加额外的列来明确指定排序选项。
条目的 amopmethod
必须与其包含的算符系列 (在此包含 amopmethod
是出于性能考虑对目录结构进行有意反规范化) 的 opfmethod
匹配。此外,
和 amoplefttype
amoprighttype
必须与引用的 pg_operator
条目的 oprleft
和 oprright
字段匹配。