Writing a sqlite clone from scratch in C.
id integer
username varchar(32)
email varchar(255)
Store rows in blocks of memory called pages. Each pages correspond to a memory page. Pages store as many rows as possible. Rows are serialized into a compact representation with each page. Pages are only allocated as needed. We keep an array of pointers to pages.