# 第 59 章编写自定义扫描提供程序

目录

59.1.创建自定义扫描路径

59.1.1.自定义扫描路径回调

59.2.创建自定义扫描计划

59.2.1.自定义扫描计划回调

59.3.执行自定义扫描

59.3.1.自定义扫描执行回调

PostgreSQL 支持一组实验设施,旨在允许扩展模块向系统添加新的扫描类型。不像一个外来数据包装器,它只负责知道如何扫描自己的外部表,自定义扫描提供程序可以提供扫描系统中任何关系的替代方法。通常,编写自定义扫描提供程序的动机是允许使用一些核心系统不支持的优化,例如缓存或某种形式的硬件加速。本章概述了如何编写新的自定义扫描提供程序。

实施一种新型的自定义扫描是一个三步过程。首先,在规划期间,有必要使用建议的策略生成代表扫描的访问路径。其次,如果规划器选择其中一个访问路径作为扫描特定关系的最佳策略,则必须将访问路径转换为计划。最后,必须能够执行计划并生成与针对相同关系的任何其他访问路径所生成的相同结果。