2024年9月26日:PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:开发版
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

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 的所有行。显然,此类操作符必须返回 boolean,其左侧输入类型必须与索引的列数据类型匹配。

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

注意

目前,假设排序操作符的排序顺序为引用的操作符族的默认顺序,即 ASC NULLS LAST。将来可能会通过添加其他列来明确指定排序选项来放宽此限制。

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

提交更正

如果您在文档中发现任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用此表单报告文档问题。