Kouhei Sutou
null+****@clear*****
Thu Dec 22 00:24:22 JST 2016
Kouhei Sutou 2016-12-22 00:24:22 +0900 (Thu, 22 Dec 2016) New Revision: 473e4ccb2fab81b141b3d233ef364b2405230b71 https://github.com/ranguba/groonga-client-rails/commit/473e4ccb2fab81b141b3d233ef364b2405230b71 Message: Add error response check Modified files: lib/groonga/client/searcher/schema_synchronizer.rb Modified: lib/groonga/client/searcher/schema_synchronizer.rb (+42 -40) =================================================================== --- lib/groonga/client/searcher/schema_synchronizer.rb 2016-12-21 18:47:50 +0900 (a8d32ff) +++ lib/groonga/client/searcher/schema_synchronizer.rb 2016-12-22 00:24:22 +0900 (fa4114e) @@ -33,11 +33,10 @@ module Groonga current_table = find_current_table return if current_table # TODO: validation - Client.open do |client| - client.table_create(:name => @schema.table, - :flags => "TABLE_PAT_KEY", - :key_type => "ShortText") - end + execute(:table_create, + :name => @schema.table, + :flags => "TABLE_PAT_KEY", + :key_type => "ShortText") end def sync_columns @@ -49,25 +48,24 @@ module Groonga def sync_column(column, current_column) if current_column.nil? - Client.open do |client| - flags = [] - if column.vector? - flags << "COLUMN_VECTOR" - else - flags << "COLUMN_SCALAR" - end - if column.reference? - reference_table_name = generate_reference_table_name(column) - sync_reference_table(column, reference_table_name) - type = reference_table_name - else - type = column.type - end - client.column_create(:table => @schema.table, - :name => column.name, - :type => type, - :flags => flags.join("|")) + flags = [] + if column.vector? + flags << "COLUMN_VECTOR" + else + flags << "COLUMN_SCALAR" + end + if column.reference? + reference_table_name = generate_reference_table_name(column) + sync_reference_table(column, reference_table_name) + type = reference_table_name + else + type = column.type end + execute(:column_create, + :table => @schema.table, + :name => column.name, + :type => type, + :flags => flags.join("|")) end sync_column_index(column, current_column) @@ -84,9 +82,7 @@ module Groonga if column.text_family_type? parameters[:normalizer] = "NormalizerAuto" end - Client.open do |client| - client.table_create(parameters) - end + execute(:table_create, parameters) end def sync_column_index(column, current_column) @@ -127,30 +123,26 @@ module Groonga parameters[:normalizer] = "NormalizerAuto" end end - Client.open do |client| - client.table_create(parameters) - end + execute(:table_create, parameters) end def create_index_column(column, lexicon_name, index_column_name) flags = "COLUMN_INDEX" flags += "|WITH_POSITION" if column.have_full_text_search_index? - Client.open do |client| - client.column_create(:table => lexicon_name, - :name => index_column_name, - :flags => flags, - :type => @schema.table, - :source => column.name) - end + execute(:column_create, + :table => lexicon_name, + :name => index_column_name, + :flags => flags, + :type => @schema.table, + :source => column.name) end def remove_indexes(current_column) return if current_column.nil? current_column.indexes.each do |index| - Client.open do |client| - clinet.column_remove(:table => index.table.name, - :name => index.name) - end + execute(:column_remove, + :table => index.table.name, + :name => index.name) end end @@ -167,6 +159,16 @@ module Groonga end end + def execute(name, parameters) + Client.open do |client| + response = client.execute(name, parameters) + unless response.success? + raise Client::Request::ErrorResponse.new(response) + end + response + end + end + def generate_reference_table_name(column) "reference_#{@schema.table}_#{column.name}" end -------------- next part -------------- HTML����������������������������...Download