[Groonga-commit] groonga/groonga at d424392 [master] logical_table_remove: reduce needed resource

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Aug 30 18:31:30 JST 2016


Kouhei Sutou	2016-08-30 18:31:30 +0900 (Tue, 30 Aug 2016)

  New Revision: d424392cbb49c72b2e3324abac3f903c65a904b3
  https://github.com/groonga/groonga/commit/d424392cbb49c72b2e3324abac3f903c65a904b3

  Message:
    logical_table_remove: reduce needed resource

  Modified files:
    plugins/sharding/logical_table_remove.rb

  Modified: plugins/sharding/logical_table_remove.rb (+25 -23)
===================================================================
--- plugins/sharding/logical_table_remove.rb    2016-08-30 18:30:47 +0900 (c3880c8)
+++ plugins/sharding/logical_table_remove.rb    2016-08-30 18:31:30 +0900 (32bf34a)
@@ -167,33 +167,35 @@ module Groonga
         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
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index