[pgsql-jp: 28139] Re: PostgreSQL7.3について疑問
Tatsuo Ishii
t-ishii @ sra.co.jp
2002年 12月 1日 (日) 10:27:08 JST
石井です.
> 石井さん、回答ありがとうございます。あわせて、SRAのページ
> (http://osb.sra.co.jp) の7.3の技術情報を公開していただき
> (セミナーの翌日深夜ですね)ありがとうございました。7.3に
> 関する情報についてはかなり満足しています。
ありがとうございます.
> # ところで「ソースの展開・コンパイル」の章で
> # # su - postgres $ cd /usr/local/src
> # の部分が2行に分かれていませんでしたので、暇なときに改行を入れて
> # ください
ご指摘ありがとうございます.さっそく修正しました.
> >> 2. 新しく実装されたスキーマについてpg_dumpでスキーマを
> >> 指定してダンプを取るようなことは可能になるでしょうか。
> >
> >これは別のところで議論があったのでパス.
>
> 別のところとはどのあたりでしょう。でも、ドキュメントを見る限りでは
> 無理そうですね。ユーザーとスキーマの範囲が同一になるようにスキーマを
> デザインし運用すれば、pg_dumpでユーザーを指定してのバックアップは
> できそうなので、とりあえず何とかなりそうですが。
[pgsql-jp: 28098]あたりです.
> テーブルのゴミということはバキュームをかければ回復するものでしょうか。
VACUUMでゴミが再利用可能に,VACUUM FULLで物理的にゴミが消去されます.
> それともそれとは別のインデックスのゴミも発生しているのでしょうか?
テーブルにもインデックスにもゴミは発生します.
> 聞き方を変えると、「スピードは問題ないが、インデックスのゴミを削るという
> 目的ではReindexは必要」ということになるのでしょうか。
はい.
P.S.
> 5. デモのexttable関数(タブ区切りテキストファイルをSQLで
> 検索する関数)のソースを、是非、公開してください。
を公開しました.
ftp://ftp/pub/cmd/postgres/exttable/exttable-0.1.tar.gz
で取得できます.参考のためにREADMEを付けておきます.
--------------------------------------------------------------------------
$Id: README.exttable.euc_jp,v 1.1.1.1 2002/12/01 01:01:18 t-ishii Exp $
exttable version 0.1 README 2002/12/01 石井達夫
1. exttableとは
exttableは,プレーンテキストファイルからデータを読み込み,それをテー
ブルデータとして返す関数です.プレーンテキストファイルは,CSVやCOPY
が出力するような,1行に1レコード,各列がタブで区切られたファイルで
なければなりません.また,文字コードはDBの文字コードと一致している
必要があります.さらに,テキストファイルのうち,1000行を超える部分
は無視されます.こういったつまらない制限事項の由来は単に作者がさぼっ
ているからに過ぎず,内部関数のreadfile()を修正することによって改善
できるはずです.
なお,読み込み対象のプレーンテキストファイルは,PostgreSQLのバック
エンドプロセスが動作するホスト(つまりpostmasterが動いているホスト)
上になければなりません.
2. 使用例
プレーンテキストファイルが以下のようになっているとします(付属の
sample.txtの内容です).
2003/1/1 鎌倉 元旦 130
2002/12/6 大阪 関西オープンソース+フリーウェア2002 15000
2002/12/16 目黒 セミナー 190
2002/8/1 葉山 海水浴 200
このファイルが/tmp/sample.txtに置いてあるとすると,以下のように
exttable()を使うことができます.
SELECT * FROM exttable('/tmp/sample.txt') AS
交通費(日付 date, 目的地 text , 目的 text, 金額 integer);
日付 | 目的地 | 目的 | 金額
------------+--------+-------------------------------------+-------
2003-01-01 | 鎌倉 | 元旦 | 130
2002-12-06 | 大阪 | 関西オープンソース+フリーウェア2002 | 15000
2002-12-16 | 目黒 | セミナー | 190
2002-08-01 | 葉山 | 海水浴 | 200
(4 rows)
このほか,exttable()を使ったサンプルSQL文がsample.sqlにありますので,
参考にしてください.
3. exttableのインストール
exttableをインストールするためには,PostgreSQLのバージョン7.3以降と,
インストールに使ったPostgreSQLのソースツリーが必要です.
PostgreSQLのソースツリーが/usr/local/src/postgresql-7.3にあり,test
データベースにexttableをインストールする場合の手順を示します.
$ cd /usr/local/src/postgresql-7.3/contrib
$ tar xfz /tmp/exttable-0.1.tar.gz
$ cd exttable-0.1
$ make
$ make install
$ psql -e -f exttable.sql test
4. 改訂履歴
2002/12/01 バージョン0.1リリース
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内