dimgigov
1ed97fb075
fix: audit batches 3–4 — TLS verify, WS, OFFSET, B-tree, NULL equality
...
CI / test (push) Has been cancelled
CI / raft-e2e (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Close the remaining 2026-08 findings: peer TLS on leader forward, disttxn
SO_ERROR, compaction catalog order, OFFSET without LIMIT, window aggregates,
WebSocket mask/size/auth, SCRAM timing and cbind, B-tree leaf left-max
separators, and SQL three-valued NULL comparisons.
2026-08-28 13:53:02 +03:00
dimgigov
e44341e47c
fix: audit batch 2 — semi-sync, DISTINCT, set ops, MERGE, storage hardening
...
CI / test (push) Has been cancelled
CI / raft-e2e (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Address 12 deep-audit findings: semi-sync fail-closed on partial ack,
COUNT/SUM/AVG(DISTINCT), UNION/INTERSECT/EXCEPT dedup, MERGE THEN DELETE,
WAL torn-record recovery, MVCC/checkpoint/flush/compaction/WAL rewrite
safety, mmap overflow bounds; remove stray protocol/scram ELF.
2026-08-02 23:12:47 +03:00
dimgigov
ccc54e8f18
fix: stabilization session — auth bypass, raft quorum, wire DoS, query operators
...
CI / test (push) Has been cancelled
CI / raft-e2e (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Security:
- MIGRATE handler now requires auth (unauthenticated arbitrary writes)
- parseHeader rejects oversized messages before allocation (pre-auth DoS)
Correctness:
- raft commit uses strict majority (N div 2 + 1), fixing even-N minority commit
- power (**) and concat (++) no longer lowered to equality
- != is now the exact complement of = for numerically-equal values
- legacy REP payload carries explicit put/delete tag (PK-only rows survive)
- REP receiver maintains secondary indexes via applyReplicatedPut/Delete
- snapshot send runs gzip off the event loop (heartbeat stall mitigation)
Docs: PLAN.md (session 13), BUG_AUDIT_2026-08.md (~28 findings, 23 tracked),
known-limitations.md, CHANGELOG.md.
Verified: baradadb build clean; test_all + bugfix_test pass.
2026-08-02 22:49:30 +03:00
dimgigov
431334b70a
fix(raft): distinguish put-with-empty-value from delete in write path
2026-07-31 00:58:51 +03:00
dimgigov
095698ba82
feat(raft): replicate schema DDL through the raft log
...
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
- isRaftDdl + leader-only gate for CREATE/DROP/ALTER (not DATABASE)
- appendDdlToRaft ships original SQL; applyCommand re-executes via
applyReplicatedDdl (idempotent on leader double-apply)
- Mixed DDL+DML batches use the DDL path so order is preserved
- Fix secondary-index point lookup to use entry.lsmKey (not filter col)
- E2E: CREATE only on leader, schema + index SELECT on follower
2026-07-30 21:25:58 +03:00
dimgigov
50f827f8cf
fix(raft): graph apply + reject non-default DB writes
...
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
- applyReplicatedPut/Delete keep in-memory graphs in sync with node/edge
table rows (idempotent edges via addEdgeWithIdIfAbsent).
- When Raft is enabled, DML is refused on any database other than
'default' (the only DB the state machine is wired to).
- Docs updated (en/bg); unit test for graph apply.
2026-07-30 21:19:01 +03:00
dimgigov
0d51497f57
fix(raft): multi-stmt write gate, rich apply, delete kv convention
...
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
- Reject follower writes if any statement in the batch is DML/COMMIT
(not only stmts[0]).
- COMMIT always emits empty-valued kvPairs for isDelete entries.
- applyCommand updates LSM plus secondary B-tree/FTS/HNSW indexes
(applyReplicatedPut/Delete) so follower index scans see replicated rows.
- Tests: not-leader append, commit timeout, index apply unit, E2E
index-backed SELECT on follower.
2026-07-30 21:14:46 +03:00
dimgigov
38c1c01841
feat(raft): classify writes, reject them on follower nodes
2026-07-30 19:07:58 +03:00
dimgigov
e8f9cbc5bb
fix: CREATE UNIQUE INDEX actually enforces uniqueness (and persists)
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
2026-07-30 17:13:29 +03:00
dimgigov
8d2d97ad94
feat(persist): standalone B-tree indexes survive restart
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
2026-07-30 16:53:25 +03:00
dimgigov
ce6e7aa707
feat(persist): graphs survive restart (rebuild from backing tables)
2026-07-30 16:11:52 +03:00
dimgigov
214e44abd7
feat(persist): HNSW vector indexes survive restart
2026-07-30 16:05:25 +03:00
dimgigov
6703ca2b29
feat(persist): FTS indexes survive restart (schema key + restore replay)
2026-07-30 15:56:48 +03:00
dimgigov
62504aa348
docs(exec): document module layering after executor split
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
2026-07-30 15:17:31 +03:00
dimgigov
a5976f648a
refactor(exec): extract IR plan execution into exec/plan_exec.nim
2026-07-30 15:02:34 +03:00
dimgigov
a147d4b620
refactor(exec): extract window functions into exec/window.nim
2026-07-30 14:52:17 +03:00
dimgigov
e618266325
refactor(exec): extract triggers/constraints into exec/triggers.nim
2026-07-30 14:43:49 +03:00
dimgigov
70c7297e33
refactor(exec): extract FK enforcement into exec/fk.nim
2026-07-30 14:35:15 +03:00
dimgigov
70b7ec7f08
refactor(exec): extract DML row operations into exec/dml.nim
2026-07-30 14:28:33 +03:00
dimgigov
e28c1f4896
refactor(exec): extract table scans into exec/scan.nim
2026-07-30 14:19:11 +03:00
dimgigov
f97e72314f
refactor(exec): extract RLS/privileges into exec/rls.nim
2026-07-30 14:11:08 +03:00
dimgigov
26475058bf
refactor(exec): extract AST->IR lowering into exec/lower.nim
2026-07-30 14:05:16 +03:00
dimgigov
b5e9636fd2
refactor(exec): extract expression evaluation + hybrid search into exec/eval.nim
2026-07-30 13:52:56 +03:00
dimgigov
2b8cc98348
refactor(exec): extract migration storage into exec/migrations.nim
2026-07-30 13:41:52 +03:00
dimgigov
2efcddba19
refactor(exec): extract param binding into exec/params.nim
2026-07-30 13:36:39 +03:00
dimgigov
46e3d7f51e
refactor(exec): extract join/vector helpers into exec/helpers.nim
2026-07-30 13:27:17 +03:00
dimgigov
08fb391ac1
refactor(exec): extract context management into exec/context.nim
2026-07-30 13:18:10 +03:00
dimgigov
2d09edd9f7
fix+refactor: soft keywords as identifiers, full test wiring, ORC crash docs
...
- parser: clause keywords (header, format, status, user, csv, ...) now work
as identifiers everywhere; IMPORT/EXPORT accept FORMAT csv/HEADER true
- nimble test + CI run all 13 test suites (650 checks green)
- ExecutionContext.registry is now {.cursor.} (breaks registry<->ctx cycle)
- ORC crash reproduced and bisected (tests/orc_repro.py); ARC stays the MM
2026-07-30 13:11:28 +03:00
dimgigov
8db5cfe7e1
feat: harden storage, schema persistence, fair benches, fix wire crash
...
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Core storage: hash MemTable, WAL group commit, L0 compaction rebuild,
reader-writer lock, and a global StorageGate so HTTP workers and TCP
share the LSM safely under multi-thread access.
Schema: durable CREATE/ALTER/DROP under _schema:tables:* with full LSM
restore on open. Executor types/values/schema split into query/exec/.
Wire protocol: switch default MM to ARC — ORC cycle collector segfaulted
after ~20 async INSERTs. Fair multi-tier benchmarks (SQLite/HTTP/wire/PG)
and honesty docs for mixed-tier comparisons.
2026-07-18 16:55:50 +03:00