Kouhei Sutou
kou****@clear*****
2014年 4月 17日 (木) 22:38:53 JST
須藤です。 In <CANM+****@mail*****> "[groonga-dev,02234] Mroongaのテーブル参照先の値をSQLでORDER BYすると値を取得できない" on Thu, 17 Apr 2014 13:02:00 +0900, Naoya Murakami <visio****@gmail*****> wrote: > ・事象 > Mroongaのテーブル参照先の値をSQLでORDER BYすると値を取得できません。 > ORDER BYしない場合は値を取得できます。 > > この事象は仕様でしょうか? 仕様ではなく、単に試していなかっただけなので対応しておきまし た! 原因を説明しておくと。。。 Groongaは参照型のカラムに値を入れると、自動で参照先のレコー ドを作成します。今回の例だと、Bugs.tagsが参照型のカラムで Tagsが参照先ですね。 作成した参照先のテーブルのレコードの_keyに、カラムに入れた値 が入ります。今回の例だと、LinuxとかMySQLですね。 で、Mroongaでは_keyをおもてに出さないようにしています。SQLっ ぽくないので。PRIMARY KEYを指定したカラムは自動で内部的に_keyに 対応付けています。なので、MroongaでTags.nameにアクセスしたら Groogna的にはTags._keyへのアクセスになっています。 なっていますというかなっているべきです。が、今回のケースでは なっていなかったのでSQLレベルでTags.nameの値を読み込もうとし たときはTags._keyの値を返すようにしました。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) Groongaサポート: http://groonga.org/ja/support/ パッチ採用はじめました: http://www.clear-code.com/recruitment/ コードリーダー育成支援はじめました: http://www.clear-code.com/services/code-reader/