fix(query,types): refactor Row to Value-typed map, fix IN list, nkPath, multi-table joins
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

- Refactored Row from Table[string, string] to Table[string, Value]
- Added Value operators: ==, !=, $, in for string interop
- Fixed valueToString for vkNull to return '\\N' instead of ''
- Fixed evalExpr irekField to return vkNull when field not found
- Added IN (val1, val2, ...) parser support
- Fixed nkPath column names in multi-table joins
- Fixed LATERAL JOIN null padding when no matching rows
- Added CREATE/DROP/USE/SHOW DATABASE parser support
- Adapted all tests for new Value type
This commit is contained in:
2026-05-20 23:22:14 +03:00
parent 57d2908066
commit 372e5cf627
14 changed files with 1084 additions and 346 deletions
+3 -1
View File
@@ -3,6 +3,8 @@ import std/os
import std/strutils
import std/monotimes
import std/tables
import std/sequtils
import barabadb/core/types
import barabadb/query/executor as qexec
import barabadb/query/parser
import barabadb/storage/lsm
@@ -97,7 +99,7 @@ suite "JOIN execution":
var foundBob = false
for row in r.rows:
if row["u.name"] == "Bob":
check row["x.total"] == "\\N"
check row["x.total"].kind == vkNull
foundBob = true
check foundBob