↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.3 / 7.2
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

17.4. 访问方法支持例程 #

有时,仅靠策略信息不足以让系统弄清如何使用索引。某些访问方法还需要额外的支持例程才能工作。例如,B-树访问方法必须能够比较两个键,并判断其中一个是大于、等于还是小于另一个。类似地,R-树访问方法必须能够计算矩形的交集、并集和大小。这些操作并不对应 SQL 查询条件中使用的操作符;它们是访问方法内部使用的管理例程。

为了在所有 PostgreSQL 访问方法之间一致地管理多样的支持例程,pg_am 包含一个名为 amsupport 的列。该列记录一个访问方法所使用的支持例程数目。对 B-树来说,这个数是一:接受两个键并根据第一个键小于、等于还是大于第二个键而返回 -1、0 或 +1 的例程。(严格地说,该例程可以返回一个负数(< 0)、零或一个非零正数(> 0)。)

pg_am 中的 amstrategies 项只是所论访问方法定义的策略数目。小于、小于等于等操作符并不出现在 pg_am 中。类似地,amsupport 只是该访问方法所需的支持例程数目。实际的例程列在别处。

顺便说一下,amorderstrategy 列表明访问方法是否支持有序扫描。零表示不支持;如果支持,amorderstrategy 就是对应排序操作符的策略例程编号。例如,B-树的 amorderstrategy = 1,即它的“小于”策略号。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。