dimgigov
92e6b99df2
Merge pull request 'feat: subquery IN/NOT IN, datetime functions, scanAll refactor, INSERT/UPDATE eval improvements' ( #1 ) from master into main
...
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
Reviewed-on: #1
2026-05-15 14:35:06 +00:00
dimgigov
f8d466d8f3
feat: subquery IN/NOT IN, datetime functions, scanAll refactor, INSERT/UPDATE eval improvements
CI / test (pull_request) Has been cancelled
CI / verify (pull_request) Has been cancelled
Clients CI / build-server (pull_request) Has been cancelled
Clients CI / test-python (pull_request) Has been cancelled
Clients CI / test-javascript (pull_request) Has been cancelled
Clients CI / test-nim (pull_request) Has been cancelled
Clients CI / test-rust (pull_request) Has been cancelled
2026-05-15 17:33:54 +03:00
dimgigov
40616ad3c0
Update repository URLs from GitHub to Codeberg
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
2026-05-15 12:11:00 +03:00
dimgigov
8c29e700c7
Revert "Update repository URLs from GitHub to Codeberg"
...
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
This reverts commit 956066631e .
2026-05-15 12:10:36 +03:00
dimgigov
956066631e
Update repository URLs from GitHub to Codeberg
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
2026-05-15 12:03:11 +03:00
dimgigov
d11e99ab5a
ci(clients): install Python dev dependencies for pytest-asyncio
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
2026-05-14 23:41:19 +03:00
dimgigov
359f945170
fix(clients): repair Python & Rust tests, add container test orchestration
...
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
- Python: fix wire protocol test method names (bool_val -> bool, etc.)
- Python: make integration tests and example fully async with pytest-asyncio
- Rust: add tokio dev-dependency and convert integration tests to async/await
- Rust: update ping_test example to async
- Nim: remove committed ELF build artifact
- Docker: add BARADB_HOST/BARADB_PORT env vars to test containers
- Docker: fix docker-compose.test.yml usage (remove --abort-on-container-exit)
- Add scripts/test-clients.sh for sequential client test runs
- Remove docker-compose.test.yml from .gitignore so it is tracked
- Fix repository URLs in Python and Rust READMEs
2026-05-14 23:35:45 +03:00
dimgigov
c55d3080cf
Update documentation and clients for v1.1.0
...
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
Documentation updates:
- Fix v0.1.0 → v1.1.0 version numbers in en, ru, fa, zh docs
- Add missing Window Functions, Multi-Tenant ERP, Supported Keywords sections
to ru, fa, zh baraql.md (~105 lines each)
- Expand Turkish and Arabic baraql.md (110 → 268 lines)
- Expand Turkish and Arabic installation.md (62 → 307 lines)
- Add new Bulgarian documentation files (18 new files)
Client updates:
- Python: Full async/await rewrite with asyncio, request queueing
- Rust: Full async/await rewrite with tokio, async examples
- Nim: Update README to v1.1.0
- All clients now support async patterns consistently
2026-05-14 23:05:47 +03:00
dimgigov
f7d4961125
feat: Multi-tenant ERP support via session variables + RLS
...
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
- SET var = value / current_setting('var') for session-scoped variables
- current_user / current_role SQL keywords with auth bridge
- server.nim + httpserver.nim populate ExecutionContext.currentUser/currentRole
- RLS policies can reference current_setting('app.tenant_id') for tenant isolation
- Fixed evalExpr to propagate ctx recursively (fixes current_user in sub-expressions)
- Fixed GROUPING SETS execution (lowerSelect checks selGroupingSetsKind)
- Fixed FTS CREATE INDEX docId mismatch (hash of tableName.$key)
- Fixed all test suites to use isolated temp directories
- Added 5 multi-tenant tests (355 total, all green)
- Updated docs: PLAN_SQL_ADVANCED.md, baraql.md, changelog.md
2026-05-14 16:28:41 +03:00
dimgigov
b0978812cb
docs(en): Update English docs for Vector SQL Integration
...
- docs/en/vector.md — add SQL usage section (CREATE TABLE VECTOR,
distance functions, <-> operator, CREATE INDEX USING hnsw)
- docs/en/baraql.md — update vector search section with real SQL syntax,
add VECTOR(n) to data types, update keyword table
- docs/en/changelog.md — add Vector SQL Integration and bugfixes to [Unreleased]
- docs/ARCHITECTURE.md — add SQL Integration bullet to Vector Engine
- README.md — update vector engine section with SQL examples,
add Vector SQL to roadmap, bump test count to 340+
2026-05-14 14:20:57 +03:00
dimgigov
d076cfde3b
feat(sql): Vector SQL Integration + test isolation fixes
...
- Add VECTOR(n) column type support in CREATE TABLE
- Add CREATE INDEX ... USING hnsw/ivfpq for vector indexes
- Add cosine_distance(), euclidean_distance(), inner_product(), l1/l2_distance()
SQL functions in expression evaluator
- Add <-> nearest-neighbor operator
- Fix ORDER BY with non-projected columns (move irpkSort before irpkProject)
- Fix execInsert to escape comma-containing values (vector literals)
- Fix MERGE tests by using unique temp dirs per test suite
- Add 8 Vector SQL Integration tests (all passing)
- Update PLAN_SQL_ADVANCED.md
2026-05-14 14:14:13 +03:00
dimgigov
96dfaaecb1
feat(sql): Advanced SQL — LATERAL, GROUP BY/HAVING, FILTER, aggregates, PIVOT, SQL/PGQ
...
- LATERAL JOIN: correlated subquery strategy (scan + merge + filter/sort/limit)
- GROUP BY: SUM/AVG/MIN/MAX evaluation inside groups, HAVING filter
- FILTER (WHERE ...): conditional aggregates for COUNT/SUM/AVG
- ARRAY_AGG / STRING_AGG: multi-argument aggregate functions
- GROUPING SETS / ROLLUP / CUBE: powerset generation for multi-level aggregation
- PIVOT / UNPIVOT: row-to-column and column-to-row transformation
- SQL/PGQ Property Graph: GRAPH_TABLE MATCH parser + executor skeleton
- 330 tests passing, all 4 modalities (SQL/JSON/Vector/Graph) integrated
2026-05-14 13:14:10 +03:00
dimgigov
e2a526df6f
feat(sql): Window Functions + MERGE statement + REST bridge plan
...
- Add Window Functions: ROW_NUMBER, RANK, DENSE_RANK, LEAD, LAG,
FIRST_VALUE, LAST_VALUE, NTILE with PARTITION BY, ORDER BY,
ROWS/RANGE frame specifications
- Add MERGE/UPSERT statement with WHEN MATCHED UPDATE and
WHEN NOT MATCHED INSERT
- Add SQL/PGQ Property Graph long-term plan in PLAN_SQL_ADVANCED.md
- Add 7 new tests for Window Functions and MERGE
- Update baraql.md documentation
2026-05-14 11:02:09 +03:00
dimgigov
18f3c16b2a
Fix/nodebara compatibility ( #2 )
2026-05-14 02:33:46 +03:00
dimgigov
71dcffecce
fix(gossip): use async UDP socket to avoid blocking the event loop
...
The gossip listener used synchronous newSocket + recvFrom,
which blocks the async event loop and prevents other async
operations from running while waiting for UDP packets.
Switch to newAsyncSocket + async recvFrom so the loop can
continue processing other tasks between gossip rounds.
2026-05-14 02:22:07 +03:00
dimgigov
398769ff97
feat(client): add TCP request queue for safe concurrency
...
The previous implementation allowed multiple concurrent async calls
(query, execute, ping) to interleave writes on the same socket,
which corrupted the binary protocol framing when NodeBB fired
parallel database operations.
Add an internal _requestQueue and _requestLock so that all TCP
requests are serialized: each async operation enqueues a task,
and tasks are drained one at a time via setImmediate().
2026-05-14 02:22:07 +03:00
dimgigov
8fb5dde858
fix(protocol): serialize float32/float64/fkVector in big-endian
...
The JavaScript client reads floats via readFloatBE/readDoubleBE,
which expect IEEE-754 values in big-endian byte order.
The Nim server was writing them with copyMem in native byte order,
so on little-endian machines (x86_64) the JS side deserialized
FLOAT64 values as garbage (e.g. 1.0 became 3.03865e-319).
Fix serialization by casting to int32/int64 and using bigEndian32/
bigEndian64, mirroring the existing big-endian handling for ints.
Apply the same fix to deserialization and to fkVector elements.
2026-05-14 02:22:07 +03:00
dimgigov
a0d2ca7776
Merge release/v1.1.0 into main
2026-05-13 15:07:44 +03:00
dimgigov
4e7e568525
release: v1.1.0 — bug fixes, Docker, clients, SCRAM auth
...
- Bump version to 1.1.0 across all components
- Remove debug CI artifacts (debug.yml, test_all.nim.bak, test_lock)
- Update CHANGELOG with v1.1.0 release notes
- Bug fixes: irNeg, distributed txn, sharding, Raft majority, MVCC,
LSM-Tree, auth (JWT + SCRAM-SHA-256), wire protocol, SQL injection,
ReDoS, graph, vector, FTS, build warnings
- Client SDKs: JS/TS, Python, Nim, Rust with tests and examples
- Docker: production + source + test compose configs
- TLA+: crossmodal, backup, recovery specs with symmetry reduction
2026-05-13 15:05:59 +03:00
dimgigov
6665ee7e0a
fix: irNeg (unary minus) evaluation in query executor
...
- Added missing irNeg case in evalExpr (query/executor.nim)
- Unary minus previously fell through to else: return 'false'
- Added 2 tests: SELECT expression and WHERE condition
2026-05-13 14:23:28 +03:00
dimgigov
42c675224c
fix: distributed transaction and sharding bugs
...
- disttxn: rollback now correctly updates participant state (was modifying a copy)
- disttxn: bare except replaced with CatchableError
- sharding: migrateData condition was always false, now correctly migrates data
- sharding: unsafe cast[string] replaced with manual byte-to-char conversion
- sharding: bare except replaced with CatchableError
- server: parseUInt replaced with parseBiggestUint for uint64 portability
2026-05-13 14:01:13 +03:00
dimgigov
45849cbe5c
fix(tests): use less common ports 29001-29003 in Raft network transport test
2026-05-13 13:53:07 +03:00
dimgigov
ac84474789
debug(ci): keep only Enhanced Migrations onwards in test_all.nim
2026-05-13 13:50:03 +03:00
dimgigov
92af288d06
debug(ci): keep only Row-Level Security onwards in test_all.nim
2026-05-13 13:46:54 +03:00
dimgigov
baf2b1a504
debug(ci): keep only TLS/SSL onwards in test_all.nim
2026-05-13 13:43:46 +03:00
dimgigov
8d600a6f23
debug(ci): keep only last quarter of test_all.nim
2026-05-13 13:40:38 +03:00
dimgigov
ca87acb120
debug(ci): comment out first half of test_all.nim
2026-05-13 13:36:58 +03:00
dimgigov
d84033984a
debug(ci): keep only second half of test_all.nim
2026-05-13 13:34:05 +03:00
dimgigov
1923aa225b
debug(ci): truncate test_all.nim to first half of suites
2026-05-13 13:31:15 +03:00
dimgigov
9777b73e7c
fix(tests): add missing import std/tables in join_tests.nim
2026-05-13 13:27:34 +03:00
dimgigov
ab2522657f
debug(ci): add lock/lsm test to isolate failure
2026-05-13 13:22:06 +03:00
dimgigov
adf5937198
debug(ci): add timeout to join_tests
2026-05-13 13:10:39 +03:00
dimgigov
113d7faafa
debug(ci): run join_tests and tla_faithfulness separately
2026-05-13 13:07:32 +03:00
dimgigov
15a905bdd1
debug(ci): emit notice with 0x0.st URL for test_all.log
2026-05-13 13:02:14 +03:00
dimgigov
14791d8be6
debug(ci): remove || true mask from test_all run
2026-05-13 12:59:26 +03:00
dimgigov
dbe92fab9d
debug(ci): always upload test_all.log to branch
2026-05-13 12:55:48 +03:00
dimgigov
d9835fe696
debug(ci): remove || echo mask from test_all binary run
2026-05-13 12:52:25 +03:00
dimgigov
1111fbf359
debug(ci): upload logs to new branch on failure
2026-05-13 12:48:05 +03:00
dimgigov
1ed9f90852
debug(ci): add nim version check step before minimal test
2026-05-13 12:40:31 +03:00
dimgigov
dea4870d87
debug(ci): try iffy/install-nim instead of jiro4989/setup-nim-action
2026-05-13 12:38:17 +03:00
dimgigov
2926701f8c
fix(ci): explicitly install openssl and ca-certificates in all workflows
2026-05-13 12:35:43 +03:00
dimgigov
fb2bd1769d
debug(ci): remove -d:ssl from minimal test to isolate issue
2026-05-13 12:33:15 +03:00
dimgigov
cde443679e
debug(ci): simplify debug workflow to isolate failure
2026-05-13 12:29:39 +03:00
dimgigov
e0037ae817
debug(ci): add debug workflow to isolate test failure
2026-05-13 12:23:50 +03:00
dimgigov
aaa4f37c77
debug(ci): post test log as commit comment on failure
2026-05-13 12:16:56 +03:00
dimgigov
25ba9911b7
debug(ci): emit notice annotation with 0x0.st URL
2026-05-13 12:11:52 +03:00
dimgigov
8e56ff721c
debug(ci): upload test log to 0x0.st on failure
2026-05-13 12:11:28 +03:00
dimgigov
942910fae5
debug(ci): print nim version, nimble packages, system info
2026-05-13 12:05:49 +03:00
dimgigov
f50cbd1555
debug(ci): upload test_output.log as artifact on failure
2026-05-13 12:04:59 +03:00
dimgigov
6978097768
debug(ci): capture test output to log for debugging GitHub Actions failure
2026-05-13 12:02:01 +03:00