Navigation Menu

Skip to content

Commit

Permalink
Extract common code
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Oct 30, 2017
1 parent 57dd9c1 commit 9621766
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 25 deletions.
21 changes: 2 additions & 19 deletions lib/groonga/client/command-line/groonga-client-index-check.rb
Expand Up @@ -177,27 +177,10 @@ def check_content(index_column)
column_name = index_column["name"]
suffix = Time.now.strftime("%Y%m%d%H%M%S_%N")
new_column_name = "#{column_name}_#{suffix}"
source_table = nil
source_columns = []
index_column.sources.each do |source|
if source.include?(".")
source_table, source_column = source.split(".")
source_columns << source_column
else
source_table = source
source_columns << "_key"
end
end
flags = index_column["flags"].split("|")
flags.delete("PERSISTENT")
column_create(table_name,
new_column_name,
flags.join("|"),
source_table,
source_columns.join(","))
column_create_similar(table_name, new_column_name, column_name)
begin
tokens = list_tokens(table_name)
broken_token = verify_tokens(source_table,
broken_token = verify_tokens(index_column.range,
table_name,
column_name,
new_column_name,
Expand Down
Expand Up @@ -91,12 +91,6 @@ def run_internal
true
end

def column_create_similar(table, column_name, base_column_name)
info = execute_command(:schema)["#{table}.#{base_column_name}"]
arguments = info.command.arguments.merge("name" => column_name)
execute_command(:column_create, arguments).body
end

def set_alias(alias_column, alias_name, real_name)
table, column = alias_column.split(".", 2)
values = [
Expand Down
27 changes: 27 additions & 0 deletions lib/groonga/client/command-line/runner.rb
Expand Up @@ -72,6 +72,33 @@ def column_create(table_name, name, flags, type, source)
:source => source).body
end

def column_create_similar(table_name, column_name, base_column_name)
if object_exist?(:schema)
info = execute_command(:schema)["#{table_name}.#{base_column_name}"]
arguments = info.command.arguments.merge("name" => column_name)
execute_command(:column_create, arguments).body
else
base_column = column_list(table_name).find do |column|
column.name == base_column_name
end
range = base_column.range
source_columns = base_column.sources.collect do |source|
if source.include?(".")
source.split(".", 2)[1]
else
"_key"
end
end
flags = base_column.flags.dup
flags.delete("PERSISTENT")
column_create(table_name,
column_name,
flags.join("|"),
range,
source_columns.join(","))
end
end

def column_remove(table, column)
execute_command(:column_remove,
:table => table,
Expand Down

0 comments on commit 9621766

Please sign in to comment.