Class: Innodb::Page::SysRsegHeader
- Inherits:
-
Innodb::Page
- Object
- Innodb::Page
- Innodb::Page::SysRsegHeader
- Defined in:
- lib/innodb/page/sys_rseg_header.rb
Constant Summary
Constants inherited from Innodb::Page
PAGE_TYPE, PAGE_TYPE_BY_VALUE, SPECIALIZED_CLASSES
Instance Attribute Summary
Attributes inherited from Innodb::Page
Instance Method Summary collapse
- #dump ⇒ Object
- #each_undo_segment ⇒ Object
-
#pos_rseg_header ⇒ Object
The position of the rollback segment header within the page.
- #pos_undo_segment_array ⇒ Object
-
#rseg_header ⇒ Object
Parse the rollback segment header from the page.
-
#size_rseg_header ⇒ Object
The size of the rollback segment header.
Methods inherited from Innodb::Page
#calculate_checksum, #checksum, #corrupt?, #cursor, #data, #fil_header, handle, #initialize, #inspect, #lsn, maybe_undefined, #next, #offset, parse, #pos_fil_header, #pos_fil_trailer, #pos_page_body, #prev, #size, #size_fil_header, #size_fil_trailer, #type
Constructor Details
This class inherits a constructor from Innodb::Page
Instance Method Details
#dump ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/innodb/page/sys_rseg_header.rb', line 47 def dump super puts puts "rollback segment header:" pp rseg_header puts puts "undo segment array:" each_undo_segment do |slot, page_number| puts " #{slot}: #{page_number}" end end |
#each_undo_segment ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/innodb/page/sys_rseg_header.rb', line 32 def each_undo_segment unless block_given? return enum_for(:each_undo_segment) end cursor(pos_undo_segment_array).name("undo_segment_array") do |c| (0...1023).each do |slot| page_number = c.name("slot[#{slot}]") { Innodb::Page.maybe_undefined(c.get_uint32) } yield slot, page_number if page_number end end end |
#pos_rseg_header ⇒ Object
The position of the rollback segment header within the page.
5 6 7 |
# File 'lib/innodb/page/sys_rseg_header.rb', line 5 def pos_rseg_header pos_fil_header + size_fil_header end |
#pos_undo_segment_array ⇒ Object
14 15 16 |
# File 'lib/innodb/page/sys_rseg_header.rb', line 14 def pos_undo_segment_array pos_rseg_header + size_rseg_header end |
#rseg_header ⇒ Object
Parse the rollback segment header from the page.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/innodb/page/sys_rseg_header.rb', line 19 def rseg_header cursor(pos_rseg_header).name("rseg_header") do |c| { :max_size => c.name("max_size") { c.get_uint32 }, :history_size => c.name("history_size") { c.get_uint32 }, :history_list => c.name("history_list") { Innodb::List::History.new(@space, Innodb::List.get_base_node(c)) }, :fseg => c.name("fseg") { Innodb::FsegEntry.get_inode(@space, c) }, } end end |
#size_rseg_header ⇒ Object
The size of the rollback segment header.
10 11 12 |
# File 'lib/innodb/page/sys_rseg_header.rb', line 10 def size_rseg_header 4 + 4 + Innodb::List::BASE_NODE_SIZE + Innodb::FsegEntry::SIZE end |