Hatena::Grouppostgresql

PostgreSQL 雑記 このページをアンテナに追加 RSSフィード

2010-04-07SQL/MED 第一弾 このエントリーを含むブックマーク このエントリーのブックマークコメント

SQL/MEDgit のコードを整理しました。→ http://repo.or.cz/w/pgsql-fdw.git

master を PostgreSQL HEAD のクローンにして、fdw ブランチに MED ルーチンを入れてみましたが、これでよかったんでしょうか? git のお作法がいまだに良くわかりません。

今回新しく、COPY FROM で使われているファイルの読み込みロジックを "File FDW" として切り出しました。外部の CSV ファイルを読み込む場合、いったん COPY FROM でテーブルに取り込まずとも、直接テーブルとして扱えるようになります。"PostgreSQL FDW" と併せて、第一弾として考えていた機能にはこぎつけました。残るは、dblink との統合をどうするかと、COPY FROM のデータソースとしてファイル以外の FDW も使えるようにするか (つまり COPY FROM の入力フォーマットを拡張できるようにする) といったあたりを練る予定です。

さて、こちらで挙げられている疑問に答えると、プランナについてはある程度 FDW に依存しない汎用的な実装が使える予想です。同一の外部サーバで実行すべき複数のスキャンを1つにまとめたり、LIMIT/OFFSET や ORDER BY のプッシュ・ダウンはたぶん全ての FDW に適用できるのでは。もし独自の実装が不要ならば、デフォルトの処理に任せられる形にするのを考えています。ちょうど現在の WHERE 句の扱いと同じです。

参照系については、プランナ周りも含めて、後は手間さえかければ何とかなる印象です。むしろ、SQL/MED で規定されていないトランザクションや更新処理の扱いをどうするかが、今後のハードルになりそうです。