fix: високо и средно приоритетни бъгове в query, protocol, storage, vector, fts
Поправени проблеми: - Wire protocol: bounds checking, max length limits, recursion depth limit - SQL injection: escape-ване на quotes в exprToSql string literals - ReDoS: escape-ване на regex metachars в LIKE/ILIKE - Stale BTree indexes: добавен BTree.remove() + изтриване при UPDATE/DELETE - SSL: quoteShell за всички shell команди с пътища - Boolean literals: parser вече разпознава tkTrue/tkFalse - Unary minus: lowerExpr map-ва ukNeg към irNeg (вместо irNot) - Non-aggregate UDFs: lowerExpr създава irekFuncCall вместо NULL literal - UTF-8 FTS: tokenize използва runes вместо байтове - HNSW: добавен Lock за thread-safe insert/search 292 теста, 0 failure-а.
This commit is contained in:
@@ -85,9 +85,10 @@ proc simpleStem(word: string): string =
|
||||
proc tokenize*(text: string, config: TokenizerConfig = defaultTokenizerConfig()): seq[string] =
|
||||
result = @[]
|
||||
var word = ""
|
||||
for ch in text:
|
||||
if ch.isAlphaNumeric() or ch in {'_', '-'}:
|
||||
word.add(ch)
|
||||
for r in text.runes:
|
||||
let rStr = $r
|
||||
if r.isAlpha() or rStr == "_" or rStr == "-":
|
||||
word.add(rStr)
|
||||
else:
|
||||
if word.len > 0:
|
||||
var token = word
|
||||
|
||||
Reference in New Issue
Block a user