Files
Baradb/PLAN.md
T
dimgigov 18af892232 Rename PLAN.md → PLAN_DONE.md, create new PLAN.md with remaining tasks
- PLAN_DONE.md: everything completed so far
- PLAN.md: only real remaining work (no Partitioning, no Kubernetes)
- Explicitly marks WebSocket auth, B-Tree range scans, JSON types as critical
2026-05-07 00:32:51 +03:00

70 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BaraDB — Оставащи задачи
> Преименуван от `PLAN.md` — всичко завършено е в `PLAN_DONE.md`.
---
## Критични (блокират production)
### 1. WebSocket Auth
- **Статус:** ❌ Не е имплементиран
- **Проблем:** WebSocket endpoint `/live` е отворен за всеки — може да се subscribe-ва без токен
- **Решение:** Проверка на JWT token при `SUBSCRIBE` съобщение
### 2. B-Tree Range Scans
- **Статус:** ⚠️ Наполовина
- **Storage layer:** ✅ `btree.scan(startKey, endKey)` съществува и работи
- **Query planner:** ❌ Изпълнява full table scan за `BETWEEN`, `>`, `<`, `>=`, `<=` вместо index range scan
- **Решение:** Wire `execScan` да използва `btree.scan()` когато има B-Tree индекс и range условие
### 3. JSON/JSONB Types
- **Статус:** ❌ Stub
- **Проблем:** `vkJson` типът съществува, но се третира като TEXT string — няма JSON path operators (`->`, `->>`)
- **Решение:** Имплементиране на JSON parsing/querying или поне валидация на JSON при INSERT
---
## Средни (важни, но не блокират)
### 4. CTE Execution (WITH RECURSIVE)
- **Статус:** 🟡 Парсва се, но не се изпълнява
- **Non-recursive CTE:** Работи чрез subquery execution
- **Recursive CTE:** Не е имплементиран
### 5. Multi-Column Indexes
- **Статус:** ❌ Не е имплементиран
- **Проблем:** `CREATE INDEX idx ON t(col1, col2)` дава parse error — parser чете само 1 колона
- **Решение:** Промяна на parser + AST + executor да поддържат списък от колони
### 6. Column Type Metadata в Wire Protocol
- **Статус:** ⚠️ Херистично
- **Проблем:** Клиентите infer-ват типовете от стойностите вместо да получат реална metadata
---
## Ниски (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.7/10** — всички production blockers са оправени освен WebSocket auth.
**Ако се оправи WebSocket auth + B-Tree range scans → 9.9/10.**