データベースのバグは直ってなかった

昨日のエントリで直ったといったが、直っていなかった。どうやらデータの種類によるらしい。



原因はどうやら文字列型の型の取得に不備がある模様。

postgresqlは8.3からはインストーラに付属のpgadminIIIでvarchar型が作成できず、text型のみとなっています。そしてこのtext型は速度的な面で推奨されていますが(実際は囲い込みの面ででしょうが)NetBeans 6.5ではvarchar(0)という型と認識しているようです。

ですから、1文字以上入れた時点でアウト。varchar型で作成して文字数を入れた場合のみ動くようです。varchar型で作成しても文字数を0のままだとエラーが出てしまいます。

ResultSetMetaDataの説明をみると

列サイズが適用できないデータ型の場合は、0 が返されます。

となっているので0ってのはサイズが0ではなく、無制限の場合等に使われる動きに対応できないとだめなはず。

ぜんぜんだめですなぁ。