Kouhei Sutou
null+****@clear*****
Mon Jul 27 19:01:18 JST 2015
Kouhei Sutou 2015-07-27 19:01:18 +0900 (Mon, 27 Jul 2015) New Revision: bbc83b935a8211bd274c37cdad5684b7a0d03493 https://github.com/groonga/groonga/commit/bbc83b935a8211bd274c37cdad5684b7a0d03493 Message: logical_parameters: add Added files: plugins/sharding/logical_parameters.rb test/command/suite/sharding/logical_parameters/range_index/always.expected test/command/suite/sharding/logical_parameters/range_index/always.test test/command/suite/sharding/logical_parameters/range_index/auto.expected test/command/suite/sharding/logical_parameters/range_index/auto.test test/command/suite/sharding/logical_parameters/range_index/default.expected test/command/suite/sharding/logical_parameters/range_index/default.test test/command/suite/sharding/logical_parameters/range_index/invalid.expected test/command/suite/sharding/logical_parameters/range_index/invalid.test test/command/suite/sharding/logical_parameters/range_index/never.expected test/command/suite/sharding/logical_parameters/range_index/never.test Modified files: plugins/sharding.rb plugins/sharding/sources.am Modified: plugins/sharding.rb (+3 -0) =================================================================== --- plugins/sharding.rb 2015-07-27 18:59:14 +0900 (4ebc9ba) +++ plugins/sharding.rb 2015-07-27 19:01:18 +0900 (dc5c0b8) @@ -1,5 +1,8 @@ require "sharding/range_expression_builder" require "sharding/logical_enumerator" + +require "sharding/logical_parameters" + require "sharding/logical_count" require "sharding/logical_range_filter" require "sharding/logical_select" Added: plugins/sharding/logical_parameters.rb (+48 -0) 100644 =================================================================== --- /dev/null +++ plugins/sharding/logical_parameters.rb 2015-07-27 19:01:18 +0900 (d6e0d73) @@ -0,0 +1,48 @@ +module Groonga + module Sharding + @range_index = :auto + class << self + attr_accessor :range_index + end + + class LogicalParametersCommand < Command + register("logical_parameters", + [ + "range_index", + ]) + + def run_body(input) + range_index = parse_range_index(input[:range_index]) + Sharding.range_index = range_index if range_index + + parameters = [ + :range_index, + ] + writer.map("parameters", parameters.size) do + parameters.each do |name| + writer.write(name.to_s) + writer.write(Sharding.__send__(name)) + end + end + end + + private + def parse_range_index(value) + case value + when nil + nil + when "auto" + :auto + when "always" + :always + when "never" + :never + else + message = "[logical_parameters][range_index] " + message << "must be auto, always or never: <#{value}>" + raise InvalidArgument, message + end + end + end + end +end Modified: plugins/sharding/sources.am (+1 -0) =================================================================== --- plugins/sharding/sources.am 2015-07-27 18:59:14 +0900 (14e5660) +++ plugins/sharding/sources.am 2015-07-27 19:01:18 +0900 (184b83e) @@ -1,6 +1,7 @@ sharding_scripts = \ logical_count.rb \ logical_enumerator.rb \ + logical_parameters.rb \ logical_range_filter.rb \ logical_select.rb \ logical_table_remove.rb \ Added: test/command/suite/sharding/logical_parameters/range_index/always.expected (+4 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/always.expected 2015-07-27 19:01:18 +0900 (512a005) @@ -0,0 +1,4 @@ +register sharding +[[0,0.0,0.0],true] +logical_parameters --range_index always +[[0,0.0,0.0],{"range_index":"always"}] Added: test/command/suite/sharding/logical_parameters/range_index/always.test (+5 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/always.test 2015-07-27 19:01:18 +0900 (f8caa01) @@ -0,0 +1,5 @@ +#@on-error omit +register sharding +#@on-error default + +logical_parameters --range_index always Added: test/command/suite/sharding/logical_parameters/range_index/auto.expected (+4 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/auto.expected 2015-07-27 19:01:18 +0900 (4d15e14) @@ -0,0 +1,4 @@ +register sharding +[[0,0.0,0.0],true] +logical_parameters --range_index auto +[[0,0.0,0.0],{"range_index":"auto"}] Added: test/command/suite/sharding/logical_parameters/range_index/auto.test (+5 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/auto.test 2015-07-27 19:01:18 +0900 (7aea6f7) @@ -0,0 +1,5 @@ +#@on-error omit +register sharding +#@on-error default + +logical_parameters --range_index auto Added: test/command/suite/sharding/logical_parameters/range_index/default.expected (+4 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/default.expected 2015-07-27 19:01:18 +0900 (6cf7ecc) @@ -0,0 +1,4 @@ +register sharding +[[0,0.0,0.0],true] +logical_parameters +[[0,0.0,0.0],{"range_index":"auto"}] Added: test/command/suite/sharding/logical_parameters/range_index/default.test (+5 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/default.test 2015-07-27 19:01:18 +0900 (c4558d3) @@ -0,0 +1,5 @@ +#@on-error omit +register sharding +#@on-error default + +logical_parameters Added: test/command/suite/sharding/logical_parameters/range_index/invalid.expected (+13 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/invalid.expected 2015-07-27 19:01:18 +0900 (a535e8a) @@ -0,0 +1,13 @@ +register sharding +[[0,0.0,0.0],true] +logical_parameters --range_index invalid +[ + [ + [ + -22, + 0.0, + 0.0 + ], + "[logical_parameters][range_index] must be auto, always or never: <invalid>" + ] +] Added: test/command/suite/sharding/logical_parameters/range_index/invalid.test (+5 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/invalid.test 2015-07-27 19:01:18 +0900 (8eb155a) @@ -0,0 +1,5 @@ +#@on-error omit +register sharding +#@on-error default + +logical_parameters --range_index invalid Added: test/command/suite/sharding/logical_parameters/range_index/never.expected (+4 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/never.expected 2015-07-27 19:01:18 +0900 (9f32fd7) @@ -0,0 +1,4 @@ +register sharding +[[0,0.0,0.0],true] +logical_parameters --range_index never +[[0,0.0,0.0],{"range_index":"never"}] Added: test/command/suite/sharding/logical_parameters/range_index/never.test (+5 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/sharding/logical_parameters/range_index/never.test 2015-07-27 19:01:18 +0900 (224edb2) @@ -0,0 +1,5 @@ +#@on-error omit +register sharding +#@on-error default + +logical_parameters --range_index never -------------- next part -------------- HTML����������������������������... Download