14.4. 访问方法支持过程

有时候,策略的信息还不足以让系统决定如何使用某个索引. 实际上,访问方法就需要附加的一些过程来保证能够工作. 例如,B-tree 访问方法必须能够比较两个键字以决定其中一个是大于,等于, 还是小于另外一个. 类似的还有R-tree访问方法必须能够计算长方形的相交, 并,和大小等.这些操作和 SQL 查询条件里使用的操作符并不对应; 它们是被访问方法的管理性质的过程内部调用的过程.

就像操作符一样,操作符表声明在一定的数据类型和语义解释的条件下, 哪个特定函数对应这些角色中的哪一个。索引访问方法声明它需要的函数集, 儿操作符表通过给它们赋予"支持函数编号"来标识要使用的正确的函数。

B-tree 需要一个支持函数,在 Table 14-4 里显示。

Table 14-4. B-tree 支持函数

函数支持号
比较两个键字并且返回一个小于零,零,或者大于零的整数, 标识第一个键字是小于,等于还是大于第二个键字。 1

类似的是散列索引也需要一个支持函数,在 Table 14-5 里显示。

Table 14-5. 散列支持函数

函数支持号
为一个键字比较散列值1

R-tree 索引需要三个支持函数,在 Table 14-6 里显示。

Table 14-6. R-tree 支持函数

函数支持号
联合1
2
大小3

Gist 索引需要七种支持函数,在 Table 14-7 里显示。

Table 14-7. GiST 支持函数

函数支持号
一致性1
联合2
压缩3
解压缩4
处罚5
选择分裂6
等于7