Kouhei Sutou
null+****@clear*****
Tue Nov 11 13:20:36 JST 2014
Kouhei Sutou 2014-11-11 13:20:36 +0900 (Tue, 11 Nov 2014) New Revision: dbf31498c88d92a6ffd26721b3c36fdbf329fcd5 https://github.com/groonga/groonga/commit/dbf31498c88d92a6ffd26721b3c36fdbf329fcd5 Message: Optimize expression for !=, <, <=, => and > operations Cast is done in building expression not evaluating expression. Modified files: lib/expr.c Modified: lib/expr.c (+5 -5) =================================================================== --- lib/expr.c 2014-11-11 13:17:21 +0900 (ffcce9e) +++ lib/expr.c 2014-11-11 13:20:36 +0900 (8aa8300) @@ -833,6 +833,11 @@ grn_expr_append_obj(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, DFI_PUT(e, type, domain, code); break; case GRN_OP_EQUAL : + case GRN_OP_NOT_EQUAL : + case GRN_OP_LESS : + case GRN_OP_GREATER : + case GRN_OP_LESS_EQUAL : + case GRN_OP_GREATER_EQUAL : PUSH_CODE(e, op, obj, nargs, code); if (nargs) { grn_id xd, yd = GRN_ID_NIL; @@ -889,11 +894,6 @@ grn_expr_append_obj(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, case GRN_OP_SIMILAR : case GRN_OP_PREFIX : case GRN_OP_SUFFIX : - case GRN_OP_NOT_EQUAL : - case GRN_OP_LESS : - case GRN_OP_GREATER : - case GRN_OP_LESS_EQUAL : - case GRN_OP_GREATER_EQUAL : case GRN_OP_GEO_DISTANCE1 : case GRN_OP_GEO_DISTANCE2 : case GRN_OP_GEO_DISTANCE3 : -------------- next part -------------- HTML����������������������������... Download