[groonga-dev,00234] Re: grn_table_sort()がoffsetの値が0以外で呼ばれると完全にソートされない

Back to archive index

morit****@razil***** morit****@razil*****
2009年 10月 16日 (金) 13:43:06 JST


森です。

gitのブランチのマージのやり方を今ひとつ理解していないために、
かえってお手数かけてしまったようで申し訳ありません。

grn_table_sort()のバグについてご指摘ありがとうございます。

現在、私の方がちょっとデスマっておりまして、
いただいたパッチの検証作業に着手できていない状態です。

申し訳ありませんがしばらくお待ちください。

まずは取り急ぎお礼申し上げます。

>>> Ryo Onodera さんは書きました:
> 小野寺です。
> 
> マージしていただいたコミットについてなのですが、自分のmasterブランチに
> は、まだこのメーリングリストで説明していないバグの修正やテストケースのコ
> ミットが三つ混ざっていました。このメールではまず一つ目を説明し、残りの二
> つについては、次以降のメールで説明します。
> 
> grn_table_sort()がoffsetの値が0以外で呼ばれた場合のテストケースを追加し
> たところ完全にソートされない場合があることが分かりました。そのテストケー
> スが以下に当たります。
> 
> add tests for grn_table_sort with offset and limit options
> http://github.com/groonga/groonga/commit/fd84a489628e37629ab2825cac910b4212794b82
> refine tests for grn_table_sort
> http://github.com/groonga/groonga/commit/14105e7c4e29c35702cbcf185d2f2c3eee62c0f1
> 
> その後、このバグを修正するパッチを作成してみました。その修正が以下に当たります。
> 
> fix a bug in grn_table_sort with offset and limit options
> http://github.com/groonga/groonga/commit/7fb4f96820a66ef4988d74c66cd2e149b469e7bb
> 
> ただ、いくつか気になる点がありました。しかしまだ自分はgroongaのコード
> ベースに詳しくないので、もしかしたら間違っているのかもしれません。
> 
> 1. resultに書き出すループ内の次のifが真になることは無いかもしれません。
> なぜならば、pack()でsort_entryの配列を作成するときに、
> grn_table_cursor_next()から返されてきたidがGRN_ID_NILの時はsort_entryの
> 配列にはrecordが追加されないように思えるからです。
> 
> if (!(*v = ep->id)) { break; }
> 
> 2. _sort()の引数にoffsetも追加すれば、使われないと分かっているoffset個の
> 先頭のレコードのソート処理を省略できるかもしれません。
> 
> 以上がマージされているコミットの中のうちの一つ目のバグに関する説明です。
> 
> そのマージの後、このバグのテストケースを簡潔にしたコミットを作成し、私の
> masterブランチにpushしましたので、pullして頂けると幸いです。
> 
> make test_array_sort() use gcut_add_datum()
> http://github.com/ryoqun/groonga/commit/ff3ec6edc195f915bf773c5b6114cb70095ac613
> 
> 今度からは私のmasterにはupstream用のコミットのみをpushするように気をつけ
> ます。
> 
> -- 
> 小野寺 諒 <onode****@clear*****>
> 株式会社クリアコード (http://www.clear-code.com/)
> 
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
> 
--
morita




groonga-dev メーリングリストの案内
Back to archive index