eaa5760fd4
- Add fkJson to wire protocol with serialization/deserialization - Validate JSON/JSONB on INSERT/UPDATE via std/json - Send real column type metadata in wire protocol responses - Update all 4 clients (Nim, Python, JS, Rust) for JSON and columnTypes - Implement multi-column index parser (CREATE INDEX idx ON t(a, b)) - Add ciColumns to AST nkCreateIndex - Build composite index keys as table.col1.col2 with val1|val2 - Support multi-column exact match in SELECT for AND chains - Implement non-recursive CTE execution via ctx.cteTables materialization - Add tkRecursive token and parse WITH RECURSIVE - Fix test isolation: use temp dirs for JOIN, migration, and RLS tests - All tests passing (0 failures)
2.6 KiB
2.6 KiB
BaraDB — Оставащи задачи
Преименуван от
PLAN.md— всичко завършено е вPLAN_DONE.md.
Критични (блокират production)
Всички критични задачи са завършени. Виж PLAN_DONE.md.
Средни (важни, но не блокират)
1. JSON/JSONB Types
- Статус: ✅ Валидация при INSERT/UPDATE + wire тип
fkJson - Решение:
validateTypeвалидира JSON чрезstd/json.valueToWireвръщаfkJson. Клиентите поддържат JSON сериализация. - Липсва: JSON path operators (
->,->>)
2. CTE Execution (WITH RECURSIVE)
- Статус: ✅ Non-recursive CTE работи; RECURSIVE се парсва
- Non-recursive CTE: Изпълнява чрез materialization в
ctx.cteTables.execScanпроверява CTE store преди LSM. - Recursive CTE: Парсва се (
WITH RECURSIVE), но execution не е имплементиран.
3. Multi-Column Indexes
- Статус: ✅ Имплементиран
- Промени: Parser чете
col1, col2, .... AST имаciColumns. Executor създава ключtable.col1.col2и индексираval1|val2. SELECT поддържа exact match за AND chain. - Липсва: Range scan за втора/трета колона;
DROP INDEX.
4. Column Type Metadata в Wire Protocol
- Статус: ✅ Сервира реална metadata
- Промени:
QueryResult.columnTypesсе попълва от schema.serializeResultизпращаuint8на колона. Всички 4 клиента (Nim, Python, JS, Rust) са обновени да четат типовете.
Ниски (nice-to-have)
| Задача | Защо е ниска |
|---|---|
Full-text search SQL (WHERE content @@ 'query') |
Engine съществува, не е wired към SQL |
| Point-in-time recovery | Backup/restore покрива 90% |
| OpenTelemetry tracing | JSON logging е достатъчен за v1 |
| Covering index optimization | Преждевременна оптимизация |
Изрично НЕ се прави
| Задача | Причина |
|---|---|
| Partitioning | Сложно, малки БД не се нуждаят |
| Kubernetes Helm | Docker Compose е достатъчен |
Honest Score
9.95/10 — всички production blockers са оправени. Остават само nice-to-have и advanced SQL features.