[Groonga-commit] groonga/groonga at 1e8c930 [master] Use bool instead of int32

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Sep 2 18:11:35 JST 2015


Kouhei Sutou	2015-09-02 18:11:35 +0900 (Wed, 02 Sep 2015)

  New Revision: 1e8c9305349c7188b370ca679c78f63c5a0075ad
  https://github.com/groonga/groonga/commit/1e8c9305349c7188b370ca679c78f63c5a0075ad

  Message:
    Use bool instead of int32
    
    Changed operators:
    
      * MATCH
      * EQUAL
      * NOT_EQUAL
      * PREFIX
      * SUFFIX
      * LESS
      * GREATER
      * LESS_EQUAL
      * GREATER_EQUAL

  Modified files:
    lib/expr.c
    test/command/suite/select/filter/invalid/match/no_index/overflow.expected
    test/command/suite/select/filter/invalid/match/no_index/overflow.test

  Modified: lib/expr.c (+24 -26)
===================================================================
--- lib/expr.c    2015-09-02 17:13:57 +0900 (a79478a)
+++ lib/expr.c    2015-09-02 18:11:35 +0900 (abda6da)
@@ -3003,8 +3003,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
             matched = grn_operator_exec_match(ctx, x, y);
           });
           ALLOC1(res);
-          grn_obj_reinit(ctx, res, GRN_DB_INT32, 0);
-          GRN_INT32_SET(ctx, res, matched ? 1 : 0);
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, matched);
         }
         code++;
         break;
@@ -3014,8 +3014,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           POP2ALLOC1(x, y, res);
           is_equal = grn_operator_exec_equal(ctx, x, y);
-          grn_obj_reinit(ctx, res, GRN_DB_INT32, 0);
-          GRN_INT32_SET(ctx, res, is_equal ? 1 : 0);
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, is_equal);
         }
         code++;
         break;
@@ -3025,8 +3025,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           POP2ALLOC1(x, y, res);
           is_not_equal = grn_operator_exec_not_equal(ctx, x, y);
-          grn_obj_reinit(ctx, res, GRN_DB_INT32, 0);
-          GRN_INT32_SET(ctx, res, is_not_equal ? 1 : 0);
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, is_not_equal);
         }
         code++;
         break;
@@ -3040,21 +3040,23 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
             matched = grn_operator_exec_prefix(ctx, x, y);
           });
           ALLOC1(res);
-          grn_obj_reinit(ctx, res, GRN_DB_INT32, 0);
-          GRN_INT32_SET(ctx, res, matched ? 1 : 0);
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, matched);
         }
         code++;
         break;
       case GRN_OP_SUFFIX :
         {
           grn_obj *x, *y;
+          grn_bool matched = GRN_FALSE;
           POP2ALLOC1(x, y, res);
-          GRN_INT32_SET(ctx, res,
-                        (GRN_TEXT_LEN(x) >= GRN_TEXT_LEN(y) &&
-                         !memcmp(GRN_TEXT_VALUE(x) + GRN_TEXT_LEN(x) - GRN_TEXT_LEN(y),
-                                 GRN_TEXT_VALUE(y), GRN_TEXT_LEN(y))));
-          res->header.type = GRN_BULK;
-          res->header.domain = GRN_DB_INT32;
+          if (GRN_TEXT_LEN(x) >= GRN_TEXT_LEN(y) &&
+              !memcmp(GRN_TEXT_VALUE(x) + GRN_TEXT_LEN(x) - GRN_TEXT_LEN(y),
+                      GRN_TEXT_VALUE(y), GRN_TEXT_LEN(y))) {
+            matched = GRN_TRUE;
+          }
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, matched);
         }
         code++;
         break;
@@ -3064,9 +3066,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           POP2ALLOC1(x, y, res);
           r = grn_operator_exec_less(ctx, x, y);
-          GRN_INT32_SET(ctx, res, r ? 1 : 0);
-          res->header.type = GRN_BULK;
-          res->header.domain = GRN_DB_INT32;
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, r);
         }
         code++;
         break;
@@ -3076,9 +3077,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           POP2ALLOC1(x, y, res);
           r = grn_operator_exec_greater(ctx, x, y);
-          GRN_INT32_SET(ctx, res, r ? 1 : 0);
-          res->header.type = GRN_BULK;
-          res->header.domain = GRN_DB_INT32;
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, r);
         }
         code++;
         break;
@@ -3088,9 +3088,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           POP2ALLOC1(x, y, res);
           r = grn_operator_exec_less_equal(ctx, x, y);
-          GRN_INT32_SET(ctx, res, r ? 1 : 0);
-          res->header.type = GRN_BULK;
-          res->header.domain = GRN_DB_INT32;
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, r);
         }
         code++;
         break;
@@ -3100,9 +3099,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           POP2ALLOC1(x, y, res);
           r = grn_operator_exec_greater_equal(ctx, x, y);
-          GRN_INT32_SET(ctx, res, r ? 1 : 0);
-          res->header.type = GRN_BULK;
-          res->header.domain = GRN_DB_INT32;
+          grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
+          GRN_BOOL_SET(ctx, res, r);
         }
         code++;
         break;

  Modified: test/command/suite/select/filter/invalid/match/no_index/overflow.expected (+1 -1)
===================================================================
--- test/command/suite/select/filter/invalid/match/no_index/overflow.expected    2015-09-02 17:13:57 +0900 (479e7de)
+++ test/command/suite/select/filter/invalid/match/no_index/overflow.expected    2015-09-02 18:11:35 +0900 (f45d8f6)
@@ -518,7 +518,7 @@ load --table Users
 {"name": "Alice 512"}
 ]
 [[0,0.0,0.0],512]
-select Users --filter 'name @ "a" || name @ "a" | "invalid operator causes overflow"'
+select Users --filter 'name @ "a" || (1 | "invalid operator causes overflow")'
 [
   [
     [

  Modified: test/command/suite/select/filter/invalid/match/no_index/overflow.test (+1 -1)
===================================================================
--- test/command/suite/select/filter/invalid/match/no_index/overflow.test    2015-09-02 17:13:57 +0900 (c17cf16)
+++ test/command/suite/select/filter/invalid/match/no_index/overflow.test    2015-09-02 18:11:35 +0900 (95ca7f3)
@@ -517,4 +517,4 @@ load --table Users
 {"name": "Alice 512"}
 ]
 
-select Users --filter 'name @ "a" || name @ "a" | "invalid operator causes overflow"'
+select Users --filter 'name @ "a" || (1 | "invalid operator causes overflow")'
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index