Implement the storage layer (src/storage/pager.rs):
- Pager struct with open(path), open_memory()
- In-memory HashMap<String, Table> for v0.1 (heap storage)
- Table struct: name, columns (Vec), rows (Vec<Vec>)
- create_table, drop_table, get_table, insert_row methods
- Binary serialization: flush() writes tables to file, load() reads them back
- Format: table_count, then for each table: name, columns, row_count, values
This is the foundation — correctness first, B-tree optimization later.
Implement the storage layer (src/storage/pager.rs):
This is the foundation — correctness first, B-tree optimization later.