pg_amop #目录 pg_amop 存储有关与访问方法操作符族关联的操作符的信息。对于作为操作符族成员的每个操作符,都有一行记录。族成员可以是搜索操作符或排序操作符。一个操作符可以出现在多个族中,但不能在一个族中出现多个搜索位置或多个排序位置。(允许操作符同时用于搜索和排序目的,尽管这种情况不太可能。)
表 51.4. pg_amop 列
|
列 描述 |
|---|
|
行标识符 |
|
此条目所属的操作符族 |
|
操作符的左侧输入数据类型 |
|
操作符的右侧输入数据类型 |
|
操作符策略编号 |
|
操作符用途, |
|
操作符的 OID |
|
索引访问方法操作符族所属 |
|
如果为排序操作符,则此条目根据此 B 树操作符族进行排序;如果为搜索操作符,则为零 |
“搜索”操作符条目表示可以搜索此操作符族的索引,以找到满足 WHERE indexed_column operator constant 的所有行。显然,这样的操作符必须返回 boolean,并且其左侧输入类型必须与索引的列数据类型匹配。
“排序”操作符条目表示可以扫描此操作符族的索引,以返回 ORDER BY indexed_column operator constant 所表示顺序的行。这样的操作符可以返回任何可排序的数据类型,尽管其左侧输入类型必须再次与索引的列数据类型匹配。ORDER BY 的确切语义由 amopsortfamily 列指定,该列必须引用操作符结果类型的 B 树操作符族。
目前,假设排序操作符的排序顺序是所引用操作符族的默认顺序,即 ASC NULLS LAST。将来可以通过添加额外的列来显式指定排序选项来放松这一点。
条目的 amopmethod 必须与其包含的操作符族的 opfmethod 匹配(包括这里的 amopmethod 是为了性能原因对目录结构进行的有意非规范化)。此外,amoplefttype 和 amoprighttype 必须与所引用 pg_operator 条目的 oprleft 和 oprright 字段匹配。
如果您发现文档中有任何不正确、与特定功能不符或需要进一步澄清的地方,请使用此表单报告文档问题。