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

Back to archive index

morit****@razil***** morit****@razil*****
2009年 10月 20日 (火) 01:12:54 JST


森です。

追加させていただきました!

今後ともどうぞよろしくお願いします。

>>> Ryo Onodera さんは書きました:
> 小野寺です。
> 
> 忙しい中、パッチの確認して頂きありがとうございます。
> 
> コミット権、よろしくお願いします。とても嬉しいです!
> まだ私はgroongaのコードを触り始めて日が浅いですが、少しずつ貢献していけ
> ればと思います。
> 
> 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
> -- 
> 小野寺 諒 <onode****@clear*****>
> 株式会社クリアコード (http://www.clear-code.com/)
> 
> 
--
morita




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