CREATE ACCESS METHOD — 新しいアクセスメソッドを定義する
CREATE ACCESS METHODnameTYPEaccess_method_typeHANDLERhandler_function
CREATE ACCESS METHODは新しいアクセスメソッドを作成します。
アクセスメソッドの名前はデータベース内で一意でなければなりません。
スーパーユーザのみが新しいアクセスメソッドを定義できます。
name作成するアクセスメソッドの名前です。
access_method_type
この句では定義するアクセスメソッドの型を指定します。
現在のところ、TABLEとINDEXだけがサポートされています。
handler_function
handler_functionはアクセスメソッドを表す、事前に登録された関数の名前(スキーマ修飾可)です。
ハンドラ関数はinternal型の引数を1つだけ取るものとして定義される必要があります。
戻り値の型はアクセスメソッドの型に依存し、TABLEアクセスメソッドの場合はtable_am_handlerでなければならず、INDEXのアクセスメソッドの場合はindex_am_handlerでなければなりません。
ハンドラ関数が実装しなければならないC言語でのAPIはアクセスメソッドの型によって変わります。
TABLEのアクセスメソッドのAPIについては第61章で、INDEXのアクセスメソッドのAPIについては第62章で説明されています。
INDEXのアクセスメソッドheptreeをハンドラ関数heptree_handlerで作成するには、次のようにします。
CREATE ACCESS METHOD heptree TYPE INDEX HANDLER heptree_handler;
CREATE ACCESS METHODはPostgreSQLの拡張です。