# File lib/innodb/page.rb, line 356 def checksum_crc32 unless size == 16384 raise "Checksum calculation is only supported for 16 KiB pages" end @checksum_crc32 ||= begin # Calculate the CRC32c of the page header. crc_partial_header = Digest::CRC32c.new each_page_header_byte_as_uint8 do |byte| crc_partial_header << byte.chr end # Calculate the CRC32c of the page body. crc_page_body = Digest::CRC32c.new each_page_body_byte_as_uint8 do |byte| crc_page_body << byte.chr end # Bitwise XOR the two checksums together. crc_partial_header.checksum ^ crc_page_body.checksum end end