Kouhei Sutou
null+****@clear*****
Mon Nov 2 18:25:47 JST 2015
Kouhei Sutou 2015-11-02 18:25:47 +0900 (Mon, 02 Nov 2015) New Revision: ef905cec2439b5b896c0707b538412a3901852c1 https://github.com/groonga/groonga/commit/ef905cec2439b5b896c0707b538412a3901852c1 Message: grndb: add "can't open object" check Added files: lib/mrb/scripts/id.rb Modified files: lib/mrb/scripts/command_line/grndb.rb lib/mrb/scripts/initialize/post.rb lib/mrb/scripts/sources.am Modified: lib/mrb/scripts/command_line/grndb.rb (+20 -0) =================================================================== --- lib/mrb/scripts/command_line/grndb.rb 2015-11-02 17:55:08 +0900 (96a99c8) +++ lib/mrb/scripts/command_line/grndb.rb 2015-11-02 18:25:47 +0900 (c0f9c53) @@ -129,6 +129,19 @@ module Groonga @succeeded = false end + open_cursor(database) do |cursor| + cursor.each do |id| + next if ID.builtin?(id) + next context[id] + message = + "[#{cursor.key}] Can't open object. " + + "It's broken. " + + "Re-create the object or the database." + $stdout.puts(message) + @succeeded = false + end + end + database.each do |object| case object when IndexColumn @@ -164,6 +177,13 @@ module Groonga end end end + + def open_cursor(database, &block) + flags = + TableCursorFlags::ASCENDING | + TableCursorFlags::BY_ID + TableCursor.open(database, :flags => flags, &block) + end end end end Added: lib/mrb/scripts/id.rb (+12 -0) 100644 =================================================================== --- /dev/null +++ lib/mrb/scripts/id.rb 2015-11-02 18:25:47 +0900 (a49e4fd) @@ -0,0 +1,12 @@ +module Groonga + module ID + # TODO: Should we bind GRN_N_RESERVED_TYPES? + N_RESERVED_TYPES = 256 + + class << self + def builtin?(id) + id < N_RESERVED_TYPES + end + end + end +end Modified: lib/mrb/scripts/initialize/post.rb (+2 -0) =================================================================== --- lib/mrb/scripts/initialize/post.rb 2015-11-02 17:55:08 +0900 (96bea42) +++ lib/mrb/scripts/initialize/post.rb 2015-11-02 18:25:47 +0900 (2ccda4d) @@ -4,6 +4,8 @@ require "context" require "writer" +require "id" + require "object" require "database" require "table" Modified: lib/mrb/scripts/sources.am (+1 -0) =================================================================== --- lib/mrb/scripts/sources.am 2015-11-02 17:55:08 +0900 (a1839d9) +++ lib/mrb/scripts/sources.am 2015-11-02 18:25:47 +0900 (4fd38a2) @@ -9,6 +9,7 @@ RUBY_SCRIPT_FILES = \ expression_rewriter.rb \ expression_rewriters.rb \ expression_size_estimator.rb \ + id.rb \ index_column.rb \ index_cursor.rb \ index_info.rb \ -------------- next part -------------- HTML����������������������������...下載