Skip to content

Commit

Permalink
logical_table_remove: reduce needed resource
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Aug 30, 2016
1 parent bae1a84 commit d424392
Showing 1 changed file with 25 additions and 23 deletions.
48 changes: 25 additions & 23 deletions plugins/sharding/logical_table_remove.rb
Original file line number Diff line number Diff line change
Expand Up @@ -167,33 +167,35 @@ def remove_table_force(table_name)
return if table_id.nil?

database.each_raw do |id, cursor|
next if ID.builtin?(id)
next if id == table_id

object = context[id]
if object.nil?
context.clear_error
next
end
context.open_temporary(id) do |object|
if object.nil?
context.clear_error
next
end

case object
when Table
if object.domain_id == table_id
begin
object.remove(:dependent => @dependent)
rescue
context.clear_error
reference_table_name = object.name
object.close
remove_table_force(reference_table_name)
case object
when Table
if object.domain_id == table_id
begin
object.remove(:dependent => @dependent)
rescue
context.clear_error
reference_table_name = object.name
object.close
remove_table_force(reference_table_name)
end
end
end
when Column
if object.range_id == table_id
begin
object.remove(:dependent => @dependent)
rescue
context.clear_error
remove_column_force(object)
when Column
if object.range_id == table_id
begin
object.remove(:dependent => @dependent)
rescue
context.clear_error
remove_column_force(object)
end
end
end
end
Expand Down

0 comments on commit d424392

Please sign in to comment.