Kouhei Sutou
kou****@clear*****
2013年 7月 10日 (水) 10:26:47 JST
須藤です。 In <20130****@ist*****> "Re: [groonga-dev,01526] Re: rroongaのUInt8, UInt16について" on Tue, 09 Jul 2013 17:49:30 +0900 (JST), Masaharu YOSHIOKA <yoshi****@ist*****> wrote: > 下記の対応、有難うございました。とりあえず、次のリリースまでは、UInt32 > で利用して、リリース後に、UInt8,16の挙動の確認させて頂きたいと思います。 確認よろしくおねがいします。 とりあえず、masterでは修正しておきました。 修正しながら気づいたのですが、 testTable.select.each{|elem| puts [elem._key, elem.int8, elem.int8 % 256, elem.int82, elem.int82 % 256, elem.int16, elem.int16 % 65536, elem.int32].join (",") } を testTable.select.each{|elem| + elem = elem.key - puts [elem._key, elem.int8, elem.int8 % 256, elem.int82, elem.int82 % 256, elem.int16, elem.int16 % 65536, elem.int32].join (",") + puts [elem.key, elem.int8, elem.int8 % 256, elem.int82, elem.int82 % 256, elem.int16, elem.int16 % 65536, elem.int32].join (",") ? ^ } (elem = elem.keyを追加して、putsの中のelem._keyを elem.key(「_」なし)に変更。) とすることでも回避できそうです。 で、おそらく、こちらの方が速いです。(カラム数が多い場合。) 元の書き方は「アクセサー」という機能を使っていて、新しい書き 方はカラムから直接値をとってきているという違いがあります。 どう違うのかというと、、、またなにか機会があれば説明します! >>>>>> On Tue, 09 Jul 2013 17:35:47 +0900 (JST) >>>>>> kou****@clear*****(Kouhei Sutou) said: >> >> 須藤です。 >> >> In <20130****@ist*****> >> "[groonga-dev,01524] rroongaのUInt8, UInt16について" on Tue, 09 Jul 2013 14:04:34 +0900 (JST), >> Masaharu YOSHIOKA <yoshi****@ist*****> wrote: >> >> > rroongaを利用しているのですが、UInt8,Uint16を利用した場合に、予想外の >> > 挙動を示しますので、報告いたします。 >> >> ありがとうございます! >> >> > ここで、以下のようなコードを実行した際に、 >> > データの数が多くなった段階で、UInt8,UInt16などの返り値がおかしくなりま >> > す。 >> >> 確認したところ、Int8/UInt8/Int16/UInt16のgroongaの値をRubyの >> 値に変換する処理が未実装だったことが原因でした。修正しておき >> ます! >> >> > データの数を増やしていないので、何とも言えませんが、もしかすると、 >> > UInt32も2^32個のデータを登録すると、おかしな値を出すのかも知れません。 >> >> 残りのInt32/UInt32/Int64/UInt64は実装されていたのでそちらは >> 大丈夫なはずです。 > > 北海道大学大学院情報科学研究科コンピュータサイエンス専攻 准教授 > 〒060-0814 北海道札幌市北区北14条西9丁目 > 吉岡 真治 e-mail: yoshi****@ist***** > URL: http://www-kb.ist.hokudai.ac.jp/~yoshioka/