fix: deadlock detector, graph/query/lexer бъгове

Поправени проблеми:
- Deadlock detector: cycle reconstruction вече проверява пълен цикъл
- Graph cypher: executeCypher acquire-ва lock при четене
- Graph engine: loadFromFile acquire-ва lock при зареждане
- Graph engine: lock поле е exported за външен достъп
- Query: parseRowData поддържа escape-ване на , и = в стойности
- Query: execUpdateRow escape-ва стойности при сериализация
- Lexer: readNumber спира при втора точка (1.2.3 вече не е валиден float)
- Lexer: skipBlockComment хвърля ValueError при незатворен коментар

292 теста, 0 failure-а.
This commit is contained in:
2026-05-12 23:21:29 +03:00
parent 80d57a36bd
commit 5e585dd347
5 changed files with 55 additions and 4 deletions
+4
View File
@@ -1,6 +1,7 @@
## Cypher-like Graph Query Extension for BaraQL
import std/tables
import std/strutils
import std/locks
import engine
type
@@ -179,6 +180,9 @@ proc executeCypher*(g: Graph, query: CypherQuery): CypherResult =
if query.pattern.nodes.len == 0:
return
acquire(g.lock)
defer: release(g.lock)
# Basic MATCH execution
if query.kind == "MATCH":
# For each node matching the pattern, collect results