class Innodb::UndoLog::UndoRecordCursor

Public Class Methods

new(undo_log, offset, direction = :forward) click to toggle source
# File lib/innodb/undo_log.rb, line 93
def initialize(undo_log, offset, direction = :forward)
  @initial = true
  @undo_log = undo_log
  @offset = offset
  @direction = direction

  case offset
  when :min
    @undo_record = @undo_log.min_undo_record
  when :max
    raise "Not implemented"
  else
    @undo_record = @undo_log.undo_record(offset)
  end
end

Public Instance Methods

each_undo_record() { |rec| ... } click to toggle source
# File lib/innodb/undo_log.rb, line 133
def each_undo_record
  return enum_for(:each_undo_record) unless block_given?

  while (rec = undo_record)
    yield rec
  end
end
next_undo_record() click to toggle source
# File lib/innodb/undo_log.rb, line 109
def next_undo_record
  rec = @undo_record.next
  @undo_record = rec if rec
end
prev_undo_record() click to toggle source
# File lib/innodb/undo_log.rb, line 114
def prev_undo_record
  rec = @undo_record.prev
  @undo_record = rec if rec
end
undo_record() click to toggle source
# File lib/innodb/undo_log.rb, line 119
def undo_record
  if @initial
    @initial = false
    return @undo_record
  end

  case @direction
  when :forward
    next_undo_record
  when :backward
    prev_undo_record
  end
end