[pgsql-jp: 25394] 7.2への移行について

早瀬 康裕 hayase @ hcn.zaq.ne.jp
2002年 3月 24日 (日) 23:10:21 JST


早瀬@阪大と申します。

PostgreSQL 7.1をバックエンドに使っていたアプリケーションを、7.2へ移行した
いと思い、調査しています。そこで今のところ二つほど問題が起っています。
助言を頂けないかと思い、投稿させていただきました。



1. 7.1 の pg_dump の出力するファイルが壊れている。

既存のDBの中に文字化けしたデータがあるようです。16列のtableのdumpを行なっ
たのですが、3列目で文字化けを起こし、4列目より後が欠落してしまっています。
このとき、pg_dumpは何もエラーメッセージを出力せず、終了ステータスも0です。

このファイルをrestoreしようとするとエラーとなり、copy dataが失敗してしまい
ます。text形式でdumpし、該当行を削除すれば成功するのですが、数万行のdumpで
さえ、エディタで編集するのは大変でした。

100万件以上のテーブルも移行しなければならないのですが、こちらにもおそらく
文字化けしたデータが含まれており、どうしようか悩んでいます。

dump時にエラーメッセージだけでも出てもらえれば嬉しいのですが。



2. 7.2のtimestamp型で、invalidが使えない

「1.」に比べれば小さな問題なのですが、時刻の情報が無いことを示すために、
7.1で invalid を使っていました。
7.2では 'invalid'::timestamp はサポートされなくなったようで、

=> SELECT 'invalid'::timestamp;
ERROR:  TIMESTAMP WITH TIME ZONE 'invalid' no longer supported

と言われてしまいます。データの欠落を示すには、invalidではなくNULLを使うべ
きと言うことでしょうか。

7.2 のユーザガイド
http://www.jp.postgresql.org/users-lounge/docs/7.2/postgres/datatype-datetime.html
には、特にinvalidが使えなくなったと言うような事は書かれていないようなので
すが。



---
早瀬 康裕
大阪大学基礎工学部情報科学科数理科学コース




pgsql-jp メーリングリストの案内