[groonga-dev,01530] Re: rroongaのUInt8, UInt16について

アーカイブの一覧に戻る

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/




groonga-dev メーリングリストの案内
アーカイブの一覧に戻る