On this page
52.4. pg_amop
目录pg_amop
存储有关与访问方法运算符系列相关联的运算符的信息。作为操作员系列成员的每个操作员都有一行。家庭成员可以是* search 运算符或 ordering *运算符。一个操作员可以出现在多个家庭中,但不能出现在一个家庭中的一个以上搜索位置或一个 Order 位置。 (虽然不太可能,但允许操作员同时用于搜索和 Order.)
表 52.4. pg_amop
列
Name | Type | References | Description |
---|---|---|---|
oid |
oid |
行标识符(隐藏属性;必须显式选择) | |
amopfamily |
oid |
pg_opfamily.oid |
此项的运算符家庭 |
amoplefttype |
oid |
pg_type.oid |
运算符的左手 Importing 数据类型 |
amoprighttype |
oid |
pg_type.oid |
运算符的右侧 Importing 数据类型 |
amopstrategy |
int2 |
运算符策略编号 | |
amoppurpose |
char |
出于运算符目的,s 用于搜索或o 用于 Order |
|
amopopr |
oid |
pg_operator.oid |
运算符的 OID |
amopmethod |
oid |
pg_am.oid |
索引访问方法运算符族适用于 |
amopsortfamily |
oid |
pg_opfamily.oid |
B-tree 运算符族,该条目根据是否为 Order 运算符进行排序;如果搜索运算符,则为零 |
“搜索”运算符条目指示可以搜索该运算符系列的索引以找到满足WHERE
* indexed_column
* * operator
* * constant
*的所有行。显然,此类运算符必须返回boolean
,并且其左侧 Importing 类型必须与索引的列数据类型匹配。
“排序”运算符条目指示可以对该运算符系列的索引进行扫描,以按ORDER BY
* indexed_column
* * operator
* * constant
*表示的 Sequences 返回行。这样的运算符可以返回任何可排序的数据类型,尽管其左手 Importing 类型必须再次与索引的列数据类型匹配。 ORDER BY
的确切语义由amopsortfamily
列指定,该列必须引用 B 树运算符族作为运算符的结果类型。
Note
目前,假设排序运算符的排序 Sequences 是所引用运算符系列(即ASC NULLS LAST
)的默认设置。有朝一日,可以通过添加其他列来显式指定排序选项来放松这种情况。
条目的amopmethod
必须与其包含的运算符系列的opfmethod
相匹配(包括amopmethod
,这是出于性能原因而故意对目录结构进行非规范化)。同样,amoplefttype
和amoprighttype
必须与引用的pg_operator
条目的oprleft
和oprright
字段匹配。