id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blocking	blockedby
71	テーブル名がすべて大文字英字だった場合への対応	kumatch	iteman	"現在のところ、参照しようとするテーブルの名称がすべて大文字の英字だった場合、マッパー名からのテーブル名変換がうまくいかず参照に失敗する。

以下のパッチを適応することで、マッパー名指定がすべて大文字英字だった場合はstrtolowerしないよう振舞うことで問題は回避できる。

ただしこのパッチでは、大文字と小文字が入り乱れるテーブル名だった場合に対応できない。[[BR]]
全般的に対応するのであれば、getMapper() 第２引数として名称の変換是非フラグを付与させるような方法が考えられる。


{{{
--- ORM/Inflector.php
+++ ORM/Inflector.php
@@ -101,9 +101,15 @@
      */
     function underscore($word)
     {
-        return strtolower(preg_replace('/[^A-Z^a-z^0-9]+/', '_',
-                                       preg_replace('/([a-z\d])([A-Z])/', '\1_\2',
-                                                    preg_replace('/([A-Z]+)([A-Z][a-z])/', '\1_\2', $word))));
+        $word = preg_replace('/[^A-Z^a-z^0-9]+/', '_',
+                             preg_replace('/([a-z\d])([A-Z])/', '\1_\2',
+                                          preg_replace('/([A-Z]+)([A-Z][a-z])/', '\1_\2', $word)));
+
+        if (preg_match('/^[A-Z0-9_]+$/', $word)) {
+            return $word;
+        } else {
+            return strtolower($word);
+        }
     }

     // }}}
}}}"	要望/提案	closed	major	1.0.0	01: マッパー	The Latest Version of 1.0	fixed				
