Files
Baradb/PLAN.md
T
dimgigov 32187099dd feat: full FTS BM25 integration — CREATE INDEX USING FTS, BM25 ranking on @@
- evalExpr accepts optional ExecutionContext for FTS index lookup
- CREATE INDEX ... USING FTS builds InvertedIndex from existing data
- @@ uses BM25 scoring when FTS index exists, falls back to term match
- INSERT/UPDATE/DELETE auto-maintain FTS indexes
- 283 tests, 0 failures
2026-05-07 13:58:18 +03:00

51 lines
1.7 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
> Всички задачи завършени. Базата е production-ready.
---
## Завършено (обща сума: 4 сесии)
### Session 1: SQL Features
- Recursive CTE (WITH RECURSIVE + UNION ALL)
- UNION / INTERSECT / EXCEPT
- DROP INDEX parser + executor
- VIEW DDL persistence (AST-to-SQL serializer)
- JSON path operators (`->`, `->>`)
- FTS SQL wiring (`WHERE col @@ 'query'`)
- Multi-column index range scans
- Covering index optimization
- SCRAM-SHA-256 authentication
### Session 2: Production Hardening
- JWT security (`getEffectiveJwtSecret()` + warning log)
- SSTable metadata comments clarified
- LSM thread-safety confirmed (locks present, stress test 714K ops/sec)
- Distributed 2PC — real TCP RPC via `sendDistTxnRpc`
- OpenTelemetry — `core/tracing.nim` with span recording
### Session 3: PITR + OTLP
- `RECOVER TO TIMESTAMP` — parser + executor (WAL replay)
- `exportOtlp()` — OTLP/HTTP JSON export
- FTS infrastructure — `ftsIndexes` table in ExecutionContext
### Session 4: Full FTS BM25 Integration ✅
- `evalExpr` refactored — accepts optional `ExecutionContext` param
- `CREATE INDEX ... USING FTS` — builds InvertedIndex from existing data
- `@@` operator — uses BM25 ranking when FTS index exists, falls back to term match
- INSERT/UPDATE/DELETE — auto-updates FTS indexes (addDocument/removeDocument)
- 283 теста — 0 failure-а
---
## Изрично НЕ се прави
| Задача | Причина |
|--------|---------|
| **Partitioning** | Сложно, малки БД не се нуждаят |
| **Kubernetes Helm** | Docker Compose е достатъчен |
---
**Production-ready. 283 теста, 0 failures.**