Kouhei Sutou
null+****@clear*****
Fri Jan 20 16:20:26 JST 2017
Kouhei Sutou 2017-01-20 16:20:26 +0900 (Fri, 20 Jan 2017) New Revision: 13ecba681ff4b48347654d44d53f5e19a80e6451 https://github.com/groonga/groonga/commit/13ecba681ff4b48347654d44d53f5e19a80e6451 Message: Really fix a bug that AND optimization may skip matched record minimum_min_id may be GRN_ID_NIL twice. Modified files: lib/expr.c Modified: lib/expr.c (+3 -1) =================================================================== --- lib/expr.c 2017-01-20 13:18:36 +0900 (fe6f3df) +++ lib/expr.c 2017-01-20 16:20:26 +0900 (8cda4a6) @@ -6158,6 +6158,7 @@ grn_table_select_index_match(grn_ctx *ctx, int n_indexes = GRN_BULK_VSIZE(&si->index)/sizeof(grn_obj *); int32_t *wp = &GRN_INT32_VALUE(&si->wv); grn_search_optarg optarg; + grn_bool minimum_min_id_is_set = GRN_FALSE; grn_id minimum_min_id = GRN_ID_NIL; unsigned int previous_n_hits = grn_table_size(ctx, res); @@ -6224,8 +6225,9 @@ grn_table_select_index_match(grn_ctx *ctx, } } GRN_BULK_REWIND(&wv); - if (minimum_min_id == GRN_ID_NIL || + if (!minimum_min_id_is_set || optarg.match_info.min < minimum_min_id) { + minimum_min_id_is_set = GRN_TRUE; minimum_min_id = optarg.match_info.min; } } -------------- next part -------------- HTML����������������������������... 下载