Redrock Postgres 搜索 英文
版本: 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18

第 60 章. 编写自定义扫描提供程序

目录

60.1. 创建自定义扫描路径
60.1.1. 自定义扫描路径回调
60.2. 创建自定义扫描计划
60.2.1. 自定义扫描计划回调
60.3. 执行自定义扫描
60.3.1. 自定义扫描执行回调

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

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