Table Data
The table data section stores table rows as CSV.
--- table:<table_name>:data
Rules
- The first CSV row is the header.
- Header names must exactly match schema column names in schema order.
- Each following row is one record.
- Values are serialized according to their CSDB type.
- CSV uses UTF-8.
- The delimiter is comma.
- The quote character is double quote.
- Embedded quotes are escaped by doubling them.
- Line endings should be LF.
Column Order
CSV columns must appear in schema order. Readers must reject CSV headers that do not exactly match the schema column order.
Nulls
An empty CSV field represents null only when the column is not required.
id,end_time
s_001,
An empty string value must be quoted:
id,note
s_001,""
Example
id,worker_id,start_time,end_time,hourly_pay,metadata
s_001,w_001,2026-01-01T09:00:00Z,2026-01-01T17:00:00Z,25.00,"{""source"":""manual""}"
s_002,w_001,2026-01-02T09:00:00Z,,25.00,"{""source"":""timer""}"
Stored Computed Fields
If a computed field has stored: true, it must appear in the CSV header and every data row.
If a computed field has stored: false, it must not appear in the CSV data unless it is also declared as a normal column.