第58章 カスタムスキャンプロバイダの作成

目次

58.1. カスタムスキャンパスの作成
58.1.1. カスタムスキャンパスのコールバック
58.2. カスタムスキャン計画の作成
58.2.1. カスタムスキャン計画のコールバック
58.3. カスタムスキャンの実行
58.3.1. カスタムスキャン実行のコールバック

PostgreSQLでは、システムに新しいスキャン方式を追加する拡張モジュールを可能にするためのいくつかの実験的機構をサポートしています。 外部データラッパが自分の外部テーブルのスキャン方法を知っていることだけを担当するのと異なり、カスタムスキャンプロバイダはシステム内のリレーションをスキャンする代替方式を提供することができます。 典型的には、カスタムスキャンプロバイダを作成する理由は、キャッシュの利用や何らかの形式のハードウェアアクセラレーションといったコアシステムによってサポートされない最適化を利用可能にすることでしょう。 本章では新しいカスタムスキャンプロバイダの作成方法について概要を説明します。

新しい種類のカスタムスキャンの実装には3段階のプロセスがあります。 第一に、計画段階において、提案される戦略を用いたスキャンを表現するアクセスパスを生成する必要があります。 第二に、プランナがあるリレーションをスキャンするための最適戦略として、そのアクセスパスの一つを選んだとき、アクセスパスが計画に変換されなければなりません。 最後に、計画を実行して、同じリレーションを対象とする他のアクセスパスが生成するのと同じ結果を生成することが可能でなければなりません。