158 Commits

Author SHA1 Message Date
Pijus Kamandulis c78842726b Support single-quoted string literals in query parsing (#18)
* Support single-quoted string literals in query parsing

Add single-quoted string literal support to the NoSQL query parser,
matching Cosmos DB behavior where apostrophes are escaped by doubling
them (''). Includes parser unit tests and an API integration test.

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

* Use backslash escape for apostrophes in single-quoted strings

Cosmos DB escapes apostrophes with \' rather than SQL-style doubling.
Also fix EscapeCharacter to return proper values for \', \", and \\
which were previously producing empty substitutions.

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-12 14:02:23 +03:00
Pijus Kamandulis 90de21c7b0 1.26.x (#17)
* Upgrade to go 1.26.3

* Update dependencies

* Update actions
0.1.31
2026-06-11 23:27:46 +03:00
Pijus Kamandulis 7c9c8ec9dc Update packages 2026-06-11 22:58:05 +03:00
Pijus Kamandulis be761badae Initial RNTBD server implementation 2026-06-11 22:43:05 +03:00
Pijus Kamandulis 36fd7f48cc Add document ETag optimistic concurrency (#16)
* Add ETag optimistic concurrency for document replace

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

* Expose precondition error code header

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

* Stop Badger GC before closing datastore

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-06-05 23:26:25 +03:00
Pijus Kamandulis 05e8cd2842 Implement REGEXMATCH function (#15)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
0.1.30
2026-05-30 21:31:45 +03:00
Pijus Kamandulis c3726a6633 Fix ARRAY_CONTAINS panic when optional partial-match argument is omitted (#14)
* Fix ARRAY_CONTAINS panic when partial match arg is omitted

The NoSQL parser always emits a third (nil) argument for the optional
partial-match flag of ARRAY_CONTAINS. The executor checked only
len(arguments) > 2 before type-asserting arguments[2] to
parsers.SelectItem, which panicked on the nil value whenever the query
omitted the partial-match argument (e.g. ARRAY_CONTAINS(c.arr, 2)).

Guard the type assertion with a nil check and add an API test covering
ARRAY_CONTAINS with and without the optional partial-match argument.

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

* Remove comments from ARRAY_CONTAINS API test

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-30 17:43:05 +03:00
Pijus Kamandulis d76cc88175 Fix 'NOT (bool)' statements 0.1.29 2026-04-04 15:04:42 +03:00
Pijus Kamandulis 3daba9d0eb Update dependencies 0.1.28 2026-01-29 21:47:35 +02:00
Pijus Kamandulis d3d238fa98 Implement continuation tokens 2026-01-29 21:45:46 +02:00
Pijus Kamandulis cae6fda95c Added cross-platform shared library tests 2025-11-27 21:26:54 +02:00
Pijus Kamandulis 46c446c273 Update dependencies 2025-11-27 00:28:37 +02:00
Pijus Kamandulis d64bdeb385 Handle 'NOT IN' statement 0.1.27 2025-10-27 21:33:49 +02:00
Pijus Kamandulis 11f3a1ad01 Fix database and collection deletion 2025-10-12 23:26:44 +03:00
Pijus Kamandulis 4d67212f1b Update dependencies 0.1.26 2025-10-08 23:21:30 +03:00
Pijus Kamandulis 03cd04e996 Downgrade Go to 1.24.7 due to windows cross-compile issue 2025-10-08 23:14:44 +03:00
Pijus Kamandulis a3bea16a26 Updated GO version to 1.25.1 0.1.25 2025-09-16 22:35:44 +03:00
Pijus Kamandulis 67b6c86e14 Update dependencies 2025-09-16 22:28:22 +03:00
Pijus Kamandulis 4872ec72fd Added support for initial data loading when using badger db 2025-09-16 20:21:27 +03:00
Pijus Kamandulis 89b914310c Fix badger prefix scans 2025-09-16 19:27:52 +03:00
Pijus Kamandulis c988741f8e Fix query creation via explorer; Extract header names to constants 2025-09-16 19:13:45 +03:00
Pijus Kamandulis 51e3311ba4 Update dependencies; Fix authentication for UDF, SPROC and TRIGGER endpoints 2025-08-20 00:12:02 +03:00
zecka fb1c080034 docs(readme): fix docker example to create valid save.json if missing (#12)
* docs(readme): fix docker example to create valid save.json if missing

Prevent runtime errors by initializing save.json with '{}' if the file does not exist before running the container.

Fixes #11

* Update README.md

---------

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>
2025-07-06 11:27:09 +03:00
Pijus Kamandulis fba9b3df5f Run badger garbage collector periodically 0.1.24 2025-05-30 00:25:17 +03:00
Pijus Kamandulis b743e23ff9 Added support for arithmetics inside queries 2025-05-30 00:15:55 +03:00
Pijus Kamandulis 11851297f5 Fix formatting for grammar file 0.1.23 2025-05-20 22:43:00 +03:00
Pijus Kamandulis 560ea5296d Add support for expressions in SELECT clause 2025-05-20 22:40:00 +03:00
Pijus Kamandulis e20a6ca7cd Extract constants instead of duplicating literals 2025-05-14 20:01:46 +03:00
Pijus Kamandulis 7e0c10479b Implement IIF function; Fix empty object select 2025-05-14 18:48:30 +03:00
Pijus Kamandulis 30195fae96 Update dependencies 2025-05-14 08:25:53 +03:00
Pijus Kamandulis 598f2837af Fix issues with persist flag; Use custom logger for badger 0.1.22 2025-04-03 23:48:20 +03:00
Pijus Kamandulis 28e3c0c3d8 Rename 'MapDS' to 'JsonDS'; Added some docs 0.1.21 2025-03-14 22:40:12 +02:00
Pijus Kamandulis 97eea30c97 Use msgpack instead of gob; Added data persistance for badger data store v0.1.21-rc.2 2025-03-13 23:59:07 +02:00
Pijus Kamandulis 5fe60d831a Pinned 3rd party Github Actions 2025-03-12 23:48:42 +02:00
Pijus Kamandulis d309d99906 Update dependancies 2025-03-12 23:24:08 +02:00
Pijus Kamandulis b2516eda9f Stability improvements v0.1.21-rc.1 2025-03-12 22:00:30 +02:00
Pijus Kamandulis 813b9faeaa Added support for Badger as an alternative storage backend v0.1.21-rc.0 2025-03-12 21:06:10 +02:00
Pijus Kamandulis e526b2269e Refactored query engine utilizing iterators 2025-03-11 17:36:28 +02:00
Pijus Kamandulis 221f029a1d DataStore is interface now. Liskov would be proud. 2025-03-09 18:34:07 +02:00
Pijus Kamandulis bd4fe5abec Update azcosmos package v0.1.20 2025-02-25 20:43:23 +02:00
Pijus Kamandulis f062e03f0c Update packages 2025-02-25 19:56:02 +02:00
Pijus Kamandulis 058b3271b7 OrderBy should bring NULL values to front 2025-02-25 19:47:29 +02:00
Pijus Kamandulis 1711c8fb5c Implement NOT logical operator 2025-02-25 19:33:32 +02:00
Pijus Kamandulis 851b3ca3a8 Fix IN clause with function calls 2025-02-20 18:45:20 +02:00
Pijus Kamandulis d27c633e1d Better handling when passing null to string functions v0.1.19 2025-02-18 20:11:11 +02:00
Pijus Kamandulis 3987df89c0 Upgrade to golang 1.24.0 2025-02-18 19:16:21 +02:00
Pijus Kamandulis 6e3f4169a1 Fix 'ComparisonOperator' parsing 2025-02-18 19:12:08 +02:00
Pijus Kamandulis 14c5400d23 Keep old explorer images tagged with version 2025-02-09 22:42:51 +02:00
Pijus Kamandulis 1cf5ae92f4 Shared library stability improvements v0.1.18 2025-02-09 11:45:10 +02:00
Pijus Kamandulis 5d99b653cc Generate more realistic resource ids 2025-02-09 00:36:35 +02:00