ToDo List:
Test cookies.
Make sys.Function a system table. Index sys.Schema.
Implement DROP INDEX, ALTER TABLE, fully implement CREATE INDEX.
Sort out error handling for PARSEINT etc.
Work on improving/testing SQL code, browse schema, float I/O.
Bug in date - Jun 5, 1825 doesn't work properly.
Database with SQL-like language. Example program:
use ;
use TcpListener;
use Arc;
let sfs = Box new;
let spd = new;
let wstg = spd.open_write;
let db = new;
let listener = bind.unwrap;
for tcps in listener.incoming
General Design of Database
SortedFile stores fixed size Records in a tree of Pages. SortedFile is used to implement:
(1) Variable length values ( which are split into fragments - see bytes module - although up to 15 bytes can be stored directly. ).
(2) Database Table storage. Each record has a 64-bit Id.
(3) Index storage ( an index record refers back to the main table ).
Pages have a maximum size, and are stored in CompactFile, which stores logical pages in smaller regions of backing storage.
When a page becomes too big, it is split into two pages.
Each page is implemented as a binary tree ( so there is a tree of trees ).