[Groonga-commit] groonga/fluent-plugin-droonga at 6aa8bae [master] adapter_select: support convert from select_request to search_request

Back to archive index

Kosuke Asami null+****@clear*****
Tue Jul 23 14:00:40 JST 2013


Kosuke Asami	2013-07-23 14:00:40 +0900 (Tue, 23 Jul 2013)

  New Revision: 6aa8bae1fa598677b66076194c79b924225b0d09
  https://github.com/groonga/fluent-plugin-droonga/commit/6aa8bae1fa598677b66076194c79b924225b0d09

  Message:
    adapter_select: support convert from select_request to search_request
    
    This "select" command only supports very basic patterns so far.

  Modified files:
    lib/droonga/plugin/adapter_groonga.rb
    test/plugin/adapter/groonga/test_select.rb

  Modified: lib/droonga/plugin/adapter_groonga.rb (+25 -1)
===================================================================
--- lib/droonga/plugin/adapter_groonga.rb    2013-07-23 13:51:05 +0900 (48c16bc)
+++ lib/droonga/plugin/adapter_groonga.rb    2013-07-23 14:00:40 +0900 (e326f6a)
@@ -22,13 +22,37 @@ module Droonga
     command :select
 
     def select(select_request)
-      search_request = select_request
+      search_request = select_convert_request(select_request)
       post(search_request) do |search_response|
         select_convert_response(search_response)
       end
       :selected
     end
 
+    def select_convert_request(select_request)
+      table = select_request["table"]
+      output_columns = select_request["output_columns"]
+      attributes = output_columns.split(/, */)
+
+      {
+        "queries" => {
+          table => {
+            "source" => table,
+            "output" => {
+              "elements"   => [
+                "startTime",
+                "elapsedTime",
+                "count",
+                "attributes",
+                "records",
+              ],
+              "attributes" => attributes,
+            },
+          }
+        }
+      }
+    end
+
     def select_convert_response(search_response)
       select_responses = search_response.collect do |key, value|
         status_code = 0

  Modified: test/plugin/adapter/groonga/test_select.rb (+34 -0)
===================================================================
--- test/plugin/adapter/groonga/test_select.rb    2013-07-23 13:51:05 +0900 (44a5a85)
+++ test/plugin/adapter/groonga/test_select.rb    2013-07-23 14:00:40 +0900 (78b0ed1)
@@ -21,6 +21,40 @@ class AdapterGroongaSelectTest < Test::Unit::TestCase
     @groonga_adapter = Droonga::GroongaAdapter.new(@proxy)
   end
 
+  class RequestTest < self
+    def test_empty
+      select_request = {
+        "table" => "EmptyTable",
+        "output_columns" => "_id",
+      }
+
+      expected_search_request = {
+        "queries" => {
+          "EmptyTable" => {
+            "source"   => "EmptyTable",
+            "output"   => {
+              "elements"   => [
+                "startTime",
+                "elapsedTime",
+                "count",
+                "attributes",
+                "records",
+              ],
+              "attributes" => ["_id"],
+            },
+          },
+        },
+      }
+
+      assert_equal(expected_search_request, convert(select_request))
+    end
+
+    private
+    def convert(select_request)
+      @groonga_adapter.select_convert_request(select_request)
+    end
+  end
+
   class ResponseTest < self
     def test_empty
       start_time = "2001-08-02T10:45:23.5+09:00"
-------------- next part --------------
HTML����������������������������...
Download 



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