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