Minimal SQLite key-value store for OCaml

Add TODO

+27
+27
TODO.md
··· 1 + # ocaml-sqlite TODO 2 + 3 + ## 1. Read any SQLite database 4 + Generalise `open_` beyond the hardcoded `kv (key TEXT, value BLOB)` schema. 5 + Parse `sqlite_master` to discover all tables and their column definitions, 6 + then expose a generic row-level read API. This makes ocaml-sqlite a pure 7 + OCaml SQLite reader — useful for inspecting `.db` files without C bindings. 8 + 9 + ## 2. Typed schema support 10 + Let users define tables with multiple typed columns (TEXT, INTEGER, REAL, 11 + BLOB, NULL). The `Btree.Record` module already handles all serial types — 12 + the missing piece is a schema definition API and column-level accessors. 13 + 14 + ## 3. Secondary indexes 15 + The `Btree.Index` module already exists. Wire it up so users can create 16 + indexes on non-key columns for efficient lookups and range scans. 17 + 18 + ## 4. Minimal SQL query layer 19 + A subset of SQL — `SELECT ... FROM ... WHERE ... ORDER BY` with simple 20 + predicates. Doesn't need a full parser; even a small OCaml DSL would work. 21 + This is the stretch goal that turns ocaml-sqlite into a genuine pure-OCaml 22 + SQLite replacement for read-heavy workloads. 23 + 24 + ## 5. Transactions / WAL 25 + ACID guarantees via write-ahead logging. Important for production use but 26 + less critical for the read-oriented use cases where a pure OCaml 27 + implementation shines most.