[Groonga-commit] groonga/groonga at 75ac678 [master] select drilldown: report error when cycle is detected

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Apr 10 22:35:28 JST 2016


Kouhei Sutou	2016-04-10 22:35:28 +0900 (Sun, 10 Apr 2016)

  New Revision: 75ac67891ab9cdd19d2aa85793d56e1b1283aeec
  https://github.com/groonga/groonga/commit/75ac67891ab9cdd19d2aa85793d56e1b1283aeec

  Message:
    select drilldown: report error when cycle is detected

  Modified files:
    lib/proc/proc_select.c
    test/command/suite/select/drilldown/labeled/table/cyclic.expected

  Modified: lib/proc/proc_select.c (+9 -0)
===================================================================
--- lib/proc/proc_select.c    2016-04-10 22:31:03 +0900 (689fff0)
+++ lib/proc/proc_select.c    2016-04-10 22:35:28 +0900 (bb6f6af)
@@ -481,6 +481,15 @@ drilldown_info_tsort_visit(grn_ctx *ctx, grn_obj *labels,
           uint32_t dependent_index = dependent_id - 1;
           cycled = drilldown_info_tsort_visit(ctx, labels, statuses, drilldowns,
                                               dependent_index, indexes);
+          if (cycled) {
+            GRN_PLUGIN_ERROR(ctx, GRN_INVALID_ARGUMENT,
+                             "[select][drilldown][%.*s][table] "
+                             "cycled dependency: <%.*s>",
+                             (int)(drilldown->label_len),
+                             drilldown->label,
+                             (int)(drilldown->table_name_len),
+                             drilldown->table_name);
+          }
         }
       }
     }

  Modified: test/command/suite/select/drilldown/labeled/table/cyclic.expected (+8 -3)
===================================================================
--- test/command/suite/select/drilldown/labeled/table/cyclic.expected    2016-04-10 22:31:03 +0900 (6df61bf)
+++ test/command/suite/select/drilldown/labeled/table/cyclic.expected    2016-04-10 22:35:28 +0900 (7fbeafa)
@@ -34,9 +34,12 @@ load --table Categories
 select Memos   --drilldown[category].table sub_category   --drilldown[category].keys _key   --drilldown[category].output_columns _key,_nsubrecs   --drilldown[sub_category].table category   --drilldown[sub_category].keys sub_category   --drilldown[sub_category].output_columns _key,_nsubrecs   --drilldown[tag].keys tag   --drilldown[tag].output_columns _key,_nsubrecs,category
 [
   [
-    0,
-    0.0,
-    0.0
+    [
+      -22,
+      0.0,
+      0.0
+    ],
+    "[select][drilldown][category][table] cycled dependency: <sub_category>"
   ],
   [
     [
@@ -80,3 +83,5 @@ select Memos   --drilldown[category].table sub_category   --drilldown[category].
     ]
   ]
 ]
+#|e| [select][drilldown][sub_category][table] cycled dependency: <category>
+#|e| [select][drilldown][category][table] cycled dependency: <sub_category>
-------------- next part --------------
HTML����������������������������...
Télécharger 



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