[Groonga-commit] droonga/fluent-plugin-droonga at bd52e03 [master] Detect unifibility for chained queries correctly

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Dec 4 16:04:18 JST 2013


YUKI Hiroshi	2013-12-04 16:04:18 +0900 (Wed, 04 Dec 2013)

  New Revision: bd52e03652054feea241f02eff62a00c000c3221
  https://github.com/droonga/fluent-plugin-droonga/commit/bd52e03652054feea241f02eff62a00c000c3221

  Message:
    Detect unifibility for chained queries correctly

  Modified files:
    lib/droonga/plugin/distributor/search.rb

  Modified: lib/droonga/plugin/distributor/search.rb (+10 -2)
===================================================================
--- lib/droonga/plugin/distributor/search.rb    2013-12-04 15:59:02 +0900 (c309e63)
+++ lib/droonga/plugin/distributor/search.rb    2013-12-04 16:04:18 +0900 (05c7e42)
@@ -31,8 +31,8 @@ module Droonga
       request = envelope["body"]
       queries = request["queries"]
 
-      queries.each do |input_name, query|
-        if query["groupBy"] && query["output"]
+      queries.each do |name, query|
+        if can_be_unified?(name, queries) && query["output"]
           query["output"]["canUnify"] = true
         end
       end
@@ -130,6 +130,14 @@ module Droonga
     private
     UNLIMITED = -1
 
+    def can_be_unified?(name, queries)
+      query = queries[name]
+      return true if query["groupBy"]
+      name = query["source"]
+      return false unless queries.keys.include?(name)
+      can_be_unified?(name, queries)
+    end
+
     def calculate_offset_and_limit!(query)
       rich_sort = query["sortBy"].is_a?(Hash)
 
-------------- next part --------------
HTML����������������������������...
下載 



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