[Groonga-commit] droonga/droonga-engine at a2034b9 [master] Extract complex predicate as a method

Back to archive index

Kouhei Sutou null+****@clear*****
Tue May 27 16:05:50 JST 2014


Kouhei Sutou	2014-05-27 16:05:50 +0900 (Tue, 27 May 2014)

  New Revision: a2034b931933bcd5eb49d2837c64072be4ffcd4e
  https://github.com/droonga/droonga-engine/commit/a2034b931933bcd5eb49d2837c64072be4ffcd4e

  Message:
    Extract complex predicate as a method

  Modified files:
    lib/droonga/plugins/search/distributed_search_planner.rb

  Modified: lib/droonga/plugins/search/distributed_search_planner.rb (+14 -10)
===================================================================
--- lib/droonga/plugins/search/distributed_search_planner.rb    2014-05-27 13:20:02 +0900 (dcc564f)
+++ lib/droonga/plugins/search/distributed_search_planner.rb    2014-05-27 16:05:50 +0900 (67582fa)
@@ -77,18 +77,9 @@ module Droonga
         end
 
         def transform_query(input_name, query)
-          output = query["output"]
-
-          # Skip reducing phase for a result with no output.
-          if output.nil? or
-              output["elements"].nil? or
-              (!output["elements"].include?("count") and
-              !output["elements"].include?("records"))
-            return
-          end
+          return unless need_reduce?(query)
 
           transformer = QueryTransformer.new(query)
-
           elements = transformer.mappers
           mapper = {}
           mapper["elements"] = elements unless elements.empty?
@@ -96,6 +87,19 @@ module Droonga
                                  :gather => mapper })
         end
 
+        def need_reduce?(query)
+          output = query["output"]
+          return false if output.nil?
+
+          output_elements = output["elements"]
+          return false if output_elements.nil?
+
+          need_reduce_elements = ["count", "records"]
+          output_elements.any? do |element|
+            need_reduce_elements.include?(element)
+          end
+        end
+
         class QueryTransformer
           attr_reader :reducers, :mappers
 
-------------- next part --------------
HTML����������������������������...
下載 



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