私はJachimの答えに完全に同意します。別のことは次のとおりです。
PostgreSQL で独自の C 言語拡張機能を開発することは (どちらかというと) 十分に文書化されています。単純なプログラムは、コードの関数を 1 つだけコンパイルし、対応する関数を記述するだけで実行できます。カスタム データ型の追加はもう少し複雑ですが、実行可能です。私が開発した拡張機能は、C++ で書かれていて、PostgreSQL のプレーンな C の間にラッパーの接着剤が少し入っているだけでした。これにより、開発がはるかに柔軟になりました。
ただし、PostgreSQL コアの変更は、どのように開始し、何を行うかという点でより複雑です。そして最後に、同じものをアーカイブします。
要約すると、C 言語関数にはすべての利点があります。
- PostgreSQL の内部データ型を利用した高性能
- シンプルなプログラミング インターフェイス
- 文書化され、おそらく非常に安定した関数インターフェイスを備えたほんの少しのコード
PostgreSQL のコアを変更する利点は見当たりませんが、多くの欠点があります。
- 長いコンパイル時間
- 独自のコード ブランチを維持し、現在のリリースにパッチを定期的に再適用する
- バグのリスクが高くなります。
C 言語インターフェイスを使用するさまざまな方法の例が必要な場合は、PostGis ソース コードを参照してください。それらはほぼすべての関数型を使用しており、コードには多くの巧妙なトリックが含まれています。