Anatomy of the Informix Data Page
When Informix stores data on disk, it doesn’t just write your row data. It also writes some “housekeeping” data at the beginning of the page and at the end of the page that help the engine to know what actually is stored in this data page.
The first 24 bytes of a page contain the page header with all kinds of information that you’re going to have a hard time finding documentation about. The last N bytes of a data page contain a timestamp and the slot table, which you may have better luck finding some documentation on. In between the page header and page footer (slot table + timestamp) you’ll find your actual data. We will need information from each of the 3 parts of the data page.
The slot table defines where each row in the page starts and how long the row is. When the engine needs to get the data for a row stored in slot #3 on a data page it goes to the slot #3 slot table entry, grabs the starting position of the data in the page and the length of the row then reads the appropriate number of bytes (defined by the le…