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

Back to archive index

Ryo Onodera onode****@clear*****
2009年 10月 26日 (月) 11:39:10 JST


小野寺です。

先週頂いたコミット権を早速使い、私がこのスレッドの最初のメールで触れてい
た、テストを綺麗にする次のパッチをpushしたいと考えていますが、いいでしょ
うか?

make test_array_sort() use gcut_add_datum()
http://github.com/ryoqun/groonga/commit/ff3ec6edc195f915bf773c5b6114cb70095ac613

On Mon, 2009-10-19 at 17:21 +0900, morit****@razil***** wrote: 
> 森です。
> 
> パッチを拝見しました!!
> 
> いただいたパッチで正しいと思うので、このまま取り込ませていただきます。
> 
> 1. 2. のご指摘についても仰るとおりですね。
> 
> _sort()にoffsetを追加してソート処理を軽くしたいと思います。
> 
> ところで、もしよろしければgroongaのコミット権は要りませんか?
> 
> >>> 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