fix: resolve all 55 identified bugs across the codebase

Comprehensive bug fix pass across all subsystems:
- Critical: lexer infinite loop, WAL lock discipline, checkpoint safety,
  compaction verification, HMAC key truncation, healthCheck leak
- High: MVCC lock safety, B-Tree delete rebalancing, Raft stale term
  handling, replication socket leaks and ack cleanup, sharding migration
  with old assignments, 2PC recovery, JWT/SCRAM auth fixes, wire protocol
  bounds checks
- Medium: config error handling, MERGE parser completeness, IR/codegen
  correctness, UDF bounds checks, LIMIT cost accuracy, mmap safety
- Low: timeout handling, float parsing edge cases, uint32 truncation,
  cache entry cleanup

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-21 10:59:51 +03:00
parent 7fc6adbe47
commit 2d310a33a1
23 changed files with 765 additions and 207 deletions
+7
View File
@@ -164,6 +164,8 @@ type
tkDatabases
tkUse
tkShow
tkDo
tkNothing
tkAutoIncrement
tkSequence
@@ -377,6 +379,8 @@ const keywords*: Table[string, TokenKind] = {
"dst": tkDst,
"merge": tkMerge,
"matched": tkMatched,
"do": tkDo,
"nothing": tkNothing,
"array": tkArray,
"vector": tkVector,
"document": tkDocument,
@@ -516,6 +520,8 @@ proc readNumber(l: var Lexer, startLine, startCol: int): Token =
numStr.add(l.input[l.pos])
discard l.advance()
if isFloat:
if numStr.endsWith("."):
numStr.add("0")
Token(kind: tkFloatLit, value: numStr, line: startLine, col: startCol)
else:
Token(kind: tkIntLit, value: numStr, line: startLine, col: startCol)
@@ -529,6 +535,7 @@ proc readIdent(l: var Lexer, startLine, startCol: int): Token =
fastRuneAt(l.input, l.pos, run, true)
ident.add($run)
inc l.col
discard l.advanceRune()
else:
break
let lowerIdent = ident.toLower()