class Innodb::DataType::RollPointerType

Rollback data pointer.

Constants

Pointer

Attributes

name[R]
width[R]

Public Class Methods

new(base_type, modifiers, properties) click to toggle source
# File lib/innodb/data_type.rb, line 380
def initialize(base_type, modifiers, properties)
  @width = 7
  @name = Innodb::DataType.make_name(base_type, modifiers, properties)
end
parse_roll_pointer(roll_ptr) click to toggle source
# File lib/innodb/data_type.rb, line 385
def self.parse_roll_pointer(roll_ptr)
  Pointer.new(
    is_insert: read_bits_at_offset(roll_ptr, 1, 55) == 1,
    rseg_id: read_bits_at_offset(roll_ptr, 7, 48),
    undo_log: Innodb::Page::Address.new(
      page: read_bits_at_offset(roll_ptr, 32, 16),
      offset: read_bits_at_offset(roll_ptr, 16, 0)
    )
  )
end

Public Instance Methods

value(data) click to toggle source
# File lib/innodb/data_type.rb, line 396
def value(data)
  roll_ptr = BinData::Uint56be.read(data)
  self.class.parse_roll_pointer(roll_ptr)
end