#author("2017-06-25T23:07:52+09:00","default:haikikyou","haikikyou")
[[PostgreSQL/開発]]

#contents

* 概要 [#x22e14be]

ここでは,拡張機能の開発で必要となる知識について整理する。~
具体的には,拡張機能のディレクトリ構造,ビルドスクリプト,制御ファイルについてである。

* 拡張機能のディレクトリ構造 [#y89187af]

CREATE EXTENSIONとしてインストールされる拡張機能のディレクトリ構造は,以下のようになっている(ここでは,拡張機能を「myext」として説明を進める)。

#geshi{{{
myext
    |- myext.control
    |- myext--xx.sql
    |- Makefile
    |- myext.c
}}}

- myext.control
-- CREATE EXTENSIONやALTER EXTENSIONが実行されたときに読み込まれる。
- myext--xx.sql
-- CREATE EXTENSIONやALTER EXTENSIONが実行されたときに実行されるターゲットバージョンのスクリプト。xxからyyへのアップデートに段階的な更新が必要な場合は,myext--xx--yy.sqlのようにする。
- Makefile
-- ビルド定義
- myex.c
-- ソースコード。もちろん複数のソースコードのコンパイル&リンクも問題ない。

* Makefile [#f07ae49f]

* 制御ファイル(.control) [#lb562e94]

* CreateExtension実行の流れ [#x42a29a9]

*  参考リンク [#w9a5a10f]

- [[extension.c>https://doxygen.postgresql.org/extension_8c.html]] - &size(11){&color(gray){ on doxygen.postgresql.org };};
- [[CreateExtension()>https://doxygen.postgresql.org/extension_8c.html#a2993f062a957c566d558e3b7eb4f3ef7]] - &size(11){&color(gray){ on doxygen.postgresql.org };};
- [[AlterExtension()>https://doxygen.postgresql.org/extension_8c.html#a97cfb4bd687671e9ff78ce6bfed81381]] - &size(11){&color(gray){ on doxygen.postgresql.org };};
- [[parse_extension_control_file()>https://doxygen.postgresql.org/extension_8c.html#a58f04078439229aa40e334f9bea7ae50]] - &size(11){&color(gray){ on doxygen.postgresql.org };};
- [[PostgreSQL 9.5.4文書 35.15. 関連するオブジェクトを拡張としてパッケージ化>https://www.postgresql.jp/document/9.5/html/extend-extensions.html]] - &size(11){&color(gray){ [[PostgreSQL 9.5.4文書>https://www.postgresql.jp/document/9.5/]] };};
- [[PostgreSQL 9.5.4文書 35.16. 拡張構築基盤>https://www.postgresql.jp/document/9.5/html/extend-pgxs.html]] - &size(11){&color(gray){ [[PostgreSQL 9.5.4文書>https://www.postgresql.jp/document/9.5/]] };};

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
目次
ダブルクリックで閉じるTOP | 閉じる
GO TO TOP