[Groonga-commit] groonga/groonga at 202b5dc [master] select: keep the number of output elements in grn_select_data

Zurück zum Archiv-Index

Kouhei Sutou null+****@clear*****
Fri May 20 18:03:01 JST 2016


Kouhei Sutou	2016-05-20 18:03:01 +0900 (Fri, 20 May 2016)

  New Revision: 202b5dc30c33e3ab9620ca62950b2f819f470f2a
  https://github.com/groonga/groonga/commit/202b5dc30c33e3ab9620ca62950b2f819f470f2a

  Message:
    select: keep the number of output elements in grn_select_data

  Modified files:
    lib/proc/proc_select.c

  Modified: lib/proc/proc_select.c (+11 -6)
===================================================================
--- lib/proc/proc_select.c    2016-05-20 18:00:05 +0900 (83ce9a6)
+++ lib/proc/proc_select.c    2016-05-20 18:03:01 +0900 (df9e23d)
@@ -136,6 +136,9 @@ typedef struct {
     grn_table_sort_key *keys;
     uint32_t n_keys;
   } drilldown;
+  struct {
+    int n_elements;
+  } output;
 } grn_select_data;
 
 grn_rc
@@ -1969,6 +1972,8 @@ grn_select(grn_ctx *ctx, grn_select_data *data)
   data->drilldown.keys = NULL;
   data->drilldown.n_keys = 0;
 
+  data->output.n_elements = 0;
+
   {
     const char *query_end = data->query.value + data->query.length;
     int space_len;
@@ -2170,13 +2175,13 @@ grn_select(grn_ctx *ctx, grn_select_data *data)
     }
 
     {
-      int result_size = 1;
+      data->output.n_elements = 1;
 
       if (data->slices) {
-        result_size += 1;
+        data->output.n_elements += 1;
       }
 
-      if (!ctx->rc && data->drilldowns) {
+      if (data->drilldowns) {
         grn_drilldown_data *anonymous_drilldown = NULL;
         if (grn_hash_size(ctx, data->drilldowns) == 1) {
           grn_id first_id = 1;
@@ -2199,10 +2204,10 @@ grn_select(grn_ctx *ctx, grn_select_data *data)
                                         data->tables.result,
                                         &(data->drilldown.n_keys));
           if (data->drilldown.keys) {
-            result_size += data->drilldown.n_keys;
+            data->output.n_elements += data->drilldown.n_keys;
           }
         } else {
-          result_size += 1;
+          data->output.n_elements += 1;
         }
       }
 
@@ -2255,7 +2260,7 @@ grn_select(grn_ctx *ctx, grn_select_data *data)
                       ":", "score(%d)", nhits);
       }
 
-      GRN_OUTPUT_ARRAY_OPEN("RESULT", result_size);
+      GRN_OUTPUT_ARRAY_OPEN("RESULT", data->output.n_elements);
 
       grn_normalize_offset_and_limit(ctx, nhits,
                                      &(data->offset), &(data->limit));
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index