# Notes 04/19/2022 ## Forwarding Address Maintained properties of Slots (Pair of Offset and Length) - Offset >= 0 - It can be zero if it is the first record - Length >= 0 - It can be zero if the record is empty (I think) - Also [the Piazza post](https://piazza.com/class/l18drq3gvwq4rf?cid=28) says so To redirect, we want to store a RID instead, which is a pair of PageNum and SlotNum. - PageNum >= 0 - [PageNum starts at 0](https://github.com/shumbo/CSE181-PJ2/blob/47344a26c1f0e8de5adc188d406eacf817a6260e/rbf/rbfm.cc#L72-L93) - SlotNum - Starts at 0? A slot might be in the following three status: 1. Record is on the page 1. Record has been deleted - Sign of offset is negative (e.g. -1) - Return error for operations on this RID 3. Record is a forwarding address - Sign of length is negative - `Slot::Offset` has `PageNum` - `Slot::Length` has `-(SlotNum + 1)` Add a field for unused slots in page header(Offset to free space, # of slots, # of unused slots)