class Innodb::Page::IndexCompressed

Public Instance Methods

directory() click to toggle source
Calls superclass method Innodb::Page::Index#directory
# File lib/innodb/page/index_compressed.rb, line 17
def directory
  super.map { |n| n & 0x3fff }
end
directory_slots() click to toggle source

The number of directory slots in use.

# File lib/innodb/page/index_compressed.rb, line 13
def directory_slots
  page_header[:n_heap] - 2
end
free_space() click to toggle source

Return the amount of free space in the page.

# File lib/innodb/page/index_compressed.rb, line 34
def free_space
  free_space_start =
    size - size_fil_trailer - directory_space - (uncompressed_columns_size * (page_header.n_heap - 2))
  puts "Free space start == %04x" % [(offset * size) + free_space_start]
  c = cursor(free_space_start).backward
  zero_bytes = 0
  zero_bytes += 1 while c.read_uint8.zero?
  zero_bytes
  # page_header[:garbage] + (size - size_fil_trailer - directory_space - page_header[:heap_top])
end
uncompressed_columns_size() click to toggle source
# File lib/innodb/page/index_compressed.rb, line 21
def uncompressed_columns_size
  if leaf?
    if record_format && record_format[:type] == :clustered
      6 + 7 # Transaction ID + Roll Pointer
    else
      0
    end
  else
    4 # Node pointer for non-leaf pages
  end
end