fix: rate limiter, graph/vector/query/server бъгове
Поправени проблеми: - Rate limiter: globalRate вече се enforce-ва; cleanupStaleClients() за memory leak - Graph engine: addEdge проверява дали src/dst nodes съществуват - Vector engine: distance() хвърля ValueError при dimension mismatch - Query: aggregate + * на empty result вече не crash-ва - Query: exprToSql funcCall вече работи с 0 аргумента - Query: INSERT trigger вече не crash-ва при празни VALUES - Server: recvWithTimeout() за всички network reads - Server: защита от negative activeConnections 292 теста, 0 failure-а.
This commit is contained in:
@@ -70,6 +70,10 @@ proc addEdge*(g: Graph, src, dst: NodeId, label: string = "",
|
||||
weight: float64 = 1.0): EdgeId =
|
||||
acquire(g.lock)
|
||||
defer: release(g.lock)
|
||||
if src notin g.nodes:
|
||||
raise newException(KeyError, "Source node does not exist: " & $uint64(src))
|
||||
if dst notin g.nodes:
|
||||
raise newException(KeyError, "Destination node does not exist: " & $uint64(dst))
|
||||
let id = EdgeId(g.nextEdgeId)
|
||||
inc g.nextEdgeId
|
||||
g.edges[id] = Edge(id: id, src: src, dst: dst, label: label,
|
||||
|
||||
Reference in New Issue
Block a user