PostgreSQL支持一组实验设施,旨在允许扩展模块向系统添加新的扫描类型。 与外部数据包装器不同, 外部数据包装器仅负责知道如何扫描其自己的外部表, 自定义扫描提供程序可以提供扫描系统中的任何关系的替代方法。通常, 编写自定义扫描提供程序的动机将是允许使用核心系统不支持的某些优化, 例如缓存或某种形式的硬件加速。本章概述如何编写新的自定义扫描提供程序。
实施新类型的自定义扫描是一个三步过程。首先,在规划期间, 有必要使用所提出的策略来生成表示扫描的访问路径。第二, 如果计划者选择那些访问路径中的一个作为扫描特定关系的最佳策略, 则必须将访问路径转换为计划。最后, 必须能够执行计划并生成针对以同一关系为目标的任何其他访问路径生成的相同结果。