[Groonga-commit] groonga/groonga at 201f0ae [master] Use only previous chunk rid instead of current chunk rid

Back to archive index

naoa null+****@clear*****
Mon Apr 4 01:59:38 JST 2016


naoa	2016-04-04 01:59:38 +0900 (Mon, 04 Apr 2016)

  New Revision: 201f0ae7b8e2a12000b4e4a3d84bdf6389bded3c
  https://github.com/groonga/groonga/commit/201f0ae7b8e2a12000b4e4a3d84bdf6389bded3c

  Merged 7e7735a: Merge pull request #519 from naoa/reduce-loop-ii-cursor-set-min

  Message:
    Use only previous chunk rid instead of current chunk rid
    
    The current chunk rid isn't used.

  Modified files:
    lib/ii.c

  Modified: lib/ii.c (+6 -10)
===================================================================
--- lib/ii.c    2016-04-03 21:49:56 +0900 (7fe0438)
+++ lib/ii.c    2016-04-04 01:59:38 +0900 (95b9d58)
@@ -4207,7 +4207,7 @@ struct _grn_ii_cursor {
 
   int weight;
 
-  uint32_t curr_chunk_rid;
+  uint32_t prev_chunk_rid;
 };
 
 static int
@@ -4339,10 +4339,7 @@ grn_ii_cursor_open(grn_ctx *ctx, grn_ii *ii, grn_id tid,
             GRN_B_DEC(c->cinfo[i].size, c->cp);
             GRN_B_DEC(c->cinfo[i].dgap, c->cp);
             crid += c->cinfo[i].dgap;
-            if (crid < min) {
-              c->curr_chunk = i + 1;
-              c->curr_chunk_rid = crid;
-            }
+            if (crid < min) { c->curr_chunk = i + 1; }
           }
           if (chunk_is_reused(ctx, ii, c, chunk, c->buf->header.chunk_size)) {
             grn_ii_cursor_close(ctx, c);
@@ -4373,11 +4370,11 @@ grn_ii_cursor_set_min(grn_ctx *ctx, grn_ii_cursor *c, grn_id min)
 
   if (grn_ii_cursor_set_min_enable) {
     c->min = min;
-    if (c->buf && c->pc.rid < c->min && c->curr_chunk_rid < c-> min && c->curr_chunk < c->nchunks) {
+    if (c->buf && c->pc.rid < c->min && c->prev_chunk_rid < c-> min && c->curr_chunk < c->nchunks) {
       uint32_t i, skip_chunk = c->curr_chunk - 1;
       grn_id rid;
       
-      for (i = skip_chunk, rid = c->curr_chunk_rid; i < c->nchunks; i++) {
+      for (i = skip_chunk, rid = c->prev_chunk_rid; i < c->nchunks; i++) {
         rid += c->cinfo[i].dgap;
         if (rid < c->min) {
           skip_chunk = i + 1;
@@ -4390,7 +4387,6 @@ grn_ii_cursor_set_min(grn_ctx *ctx, grn_ii_cursor *c, grn_id min)
         c->pc.rid = rid;
         c->curr_chunk = skip_chunk;
         c->crp = c->cdp + c->cdf;
-        c->curr_chunk_rid = rid;
       }
     }
   }
@@ -4488,7 +4484,7 @@ grn_ii_cursor_next(grn_ctx *ctx, grn_ii_cursor *c)
                 }
                 c->cpp = c->rdv[j].data;
               }
-              c->curr_chunk_rid = c->pc.rid;
+              c->prev_chunk_rid = c->pc.rid;
               c->pc.rid = 0;
               c->pc.sid = 0;
               c->pc.rest = 0;
@@ -7353,7 +7349,7 @@ grn_ii_cursor_next_all(grn_ctx *ctx, grn_ii_cursor *c)
                 }
                 c->cpp = c->rdv[j].data;
               }
-              c->curr_chunk_rid = c->pc.rid;
+              c->prev_chunk_rid = c->pc.rid;
               c->pc.rid = 0;
               c->pc.sid = 0;
               c->pc.rest = 0;
-------------- next part --------------
HTML����������������������������...
Download 



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