今日は8時スタート

買い物をしたのですごく遅くなってしまった。まずJSplitPaneの実装。これは余裕。次に、データだけでなく列定義情報を表示することにした。DataBaseにアクセスするメソッドは違っても、受け取る種類は同じ。だから実はほとんど変わらない。すぐに動く・・・はずだったのが、ここで思わぬアクシデントが発生した。
データベースアクセスのモジュールからエラーが返ってきた。メッセージを見ると、pg_attributeというテーブルにはoidという列が存在しないという。oidとはobjectIDのことでいわゆる疑似列と呼ばれるもの。テーブルには存在しない列だが特別に検索が可能で、そのオブジェクトを内部的に識別する番号のはず。それが検索できないなんてそんなばかな。と思ったがSQLをじかたたきしても結果は同じ。意味が分からずメーリングリストを検索しても、その列を使ってくれとあるだけ、八方ふさがりかと思った。
そこで、oidがないなんて事はあり得ないということで、列にcommentコマンドでコメントを設定し、pg_descriptionというテーブルからそのコメントを引き出してpg_idを引っ張ろうとする。そうするとoidはもとのテーブルのIDだった。そんなことは不可能なので、どういう事かと思いよくデータを見ると、後ろに1とあった。つまりこの1が実はそのテーブルの列の番号に当たり、これで判別しなければならなかったのだ。その列名がobjsubidという。おいおい・・・。
ようするにマイナーバージョンが違うことによる仕様変更にひっかかってしまった。さすがPostgreSQLというべきなのか。みんなこんなのにはひっかからなかったのかなぁ。大した変更ではないという認識なんだろうか。ちょっとショックを受けた。
原因が分かると問題なく作動した。JTabbedPaneで2つのTableを張る。この辺も簡単。さすがMVCだ。