[Seasar-dev:8] DatabaseMetaDataUtilで識別子を大文字にするか小文字にするか固定されている
UEHARA Keizou
uehara
2004年 7月 22日 (木) 20:40:04 JST
はじめまして、上原慶三と申します。
バグトラッキングシステムのほうにも投稿したのですが、メンテナンスされていないようですので
念のためこちらにも投稿させていただきます。
PostgreSQLでは識別子の大文字・小文字を区別せず、小文字
になおして格納するのですが、DatabaseMetaDataUtilで
supportsMixedCaseIdentifiers(dbMetaData)
をしらべて、falseだと必ず大文字に直してメタデータを取得しているので、
PostgreSQLではメタデータが取得できません。
storesLowerCaseIdentifiers()やstoresUpperCaseIdentifiers()をしらべて大文字にするか
小文字にするか決めてもらえれば助かるのですが。
---
if (!supportsMixedCaseIdentifiers(dbMetaData)) {
tableName = tableName.toUpperCase();
}
---
を
---
if (!supportsMixedCaseIdentifiers(dbMetaData)) {
if(storesUpperCaseIdentifiers(dbMetaData)){
tableName = tableName.toUpperCase();
}else{
tableName = tableName.toLowerCase();
}
}
...
public static boolean storesUpperCaseIdentifiers(DatabaseMetaData dbMetaData) {
try {
return dbMetaData.storesUpperCaseIdentifiers();
} catch (SQLException ex) {
throw new SQLRuntimeException(ex);
}
}
---
のようにしてほしいのです。
バグトラッキングシステムのほうには変更したソースを添付しました。
あまり詳しくテストしていませんが、今のところこの変更でPostgreSQLでもうまく動いています。
よろしくお願いします。
------------------------------------------------------------
発信者:上原 慶三 三菱スペースソフトウェア株式会社
関西事業部 バイオインフォマティクス部 第1技術課課
TEL:(06)4961-8862 661-0001 兵庫県尼崎市塚口本町5-4-36
FAX:(06)4961-8820 E-Mail:uehara @ cbo.mss.co.jp
seasar-dev メーリングリストの案内