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
d3d238fa98
Implement continuation tokens
2026-01-29 21:45:46 +02:00
Pijus Kamandulis
d64bdeb385
Handle 'NOT IN' statement
2025-10-27 21:33:49 +02:00
Pijus Kamandulis
b743e23ff9
Added support for arithmetics inside queries
2025-05-30 00:15:55 +03:00
Pijus Kamandulis
560ea5296d
Add support for expressions in SELECT clause
2025-05-20 22:40:00 +03:00
Pijus Kamandulis
7e0c10479b
Implement IIF function; Fix empty object select
2025-05-14 18:48:30 +03:00
Pijus Kamandulis
e526b2269e
Refactored query engine utilizing iterators
2025-03-11 17:36:28 +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
2025-02-18 20:11:11 +02:00
Pijus Kamandulis
787cdb33cf
Fix OFFSET clause
2025-02-08 15:28:06 +02:00
Pijus Kamandulis
3fee3bc816
Fix ARRAY_CONTAINS partial matches for nested objects
2025-02-03 19:29:29 +02:00
Pijus Kamandulis
8657c48fc8
Added support for table alias; Make AS keyword optional #9
2025-02-03 19:02:12 +02:00
Pijus Kamandulis
8b8b087aab
Added setting for LogLevel
2025-01-09 21:07:41 +02:00
Pijus Kamandulis
69b76c1c3e
Simplify constant initialization in unit tests
2024-12-26 20:43:57 +02:00
Pijus Kamandulis
8e3db3e44d
Added support for 'ARRAY_CONTAINS', 'ARRAY_CONTAINS_ANY' and 'ARRAY_CONTAINS_ALL' functions
2024-12-26 20:27:59 +02:00
Pijus Kamandulis
928ca29fe4
Support parameter in bracket #8
2024-12-25 21:28:42 +02:00
Pijus Kamandulis
e5ddc143f0
Improved concurrency handling
2024-12-08 17:54:58 +02:00
Pijus Kamandulis
66ea859f34
Add support for subqueries
2024-12-07 22:29:26 +02:00
Pijus Kamandulis
20af73ee9c
Partial JOIN implementation
2024-07-17 21:56:17 +03:00
Pijus Kamandulis
3bdff9b643
Implement Mathematical Functions
2024-06-19 00:44:46 +03:00
Pijus Kamandulis
b808e97c72
Fix array access
2024-06-03 19:00:52 +03:00
Pijus Kamandulis
398584368f
Implement OFFSET LIMIT
2024-03-11 22:09:55 +02:00
Pijus Kamandulis
6ed74688ca
Implement AVG, COUNT, MAX, MIN, SUM functions
2024-03-11 19:10:41 +02:00
Pijus Kamandulis
b72bba86c8
Implement 'GROUP BY' statement
2024-03-11 17:50:20 +02:00
Pijus Kamandulis
6ccb7c4bdd
Implement custom logger with log levels
2024-02-27 22:38:59 +02:00
Pijus Kamandulis
5ff923ce2c
Implement DISTINCT clause
2024-02-27 21:10:03 +02:00
Pijus Kamandulis
48660b5f63
Code cleanup; Implement persistant storage; Use maps for storage
2024-02-25 22:20:11 +02:00
Pijus Kamandulis
1c5e5ce85d
Implement ARRAY_CONCAT, ARRAY_LENGTH, ARRAY_SLICE, SetIntersect, SetUnion functions
2024-02-25 00:38:10 +02:00
Pijus Kamandulis
b29608e4c8
Implement IS_ARRAY, IS_BOOL, IS_FINITE_NUMBER, IS_INTEGER, IS_NULL, IS_NUMBER, IS_OBJECT, IS_PRIMITIVE, IS_STRING functions
2024-02-24 22:29:33 +02:00
Pijus Kamandulis
2431307a12
Implement LEFT,LENGTH,LTRIM,REPLACE,REPLICATE,REVERSE,RIGHT,RTRIM,SUBSTRING,TRIM functions
2024-02-24 21:24:20 +02:00
Pijus Kamandulis
f356f26d26
Implement UPPER/LOWER; minor Fixes
2024-02-24 20:00:47 +02:00
Pijus Kamandulis
f37c664c1a
Implement IN function
2024-02-24 17:26:16 +02:00
Pijus Kamandulis
16f41a5479
Implement ToString function
2024-02-23 00:11:14 +02:00
Pijus Kamandulis
59632ec966
Implement INDEX_OF function
2024-02-22 22:12:52 +02:00
Pijus Kamandulis
790192bf5a
Implement STARTSWITH, ENDSWITH functions
2024-02-21 20:46:08 +02:00
Pijus Kamandulis
9bf3dc22ed
Implement CONTAINS function
2024-02-21 20:25:14 +02:00
Pijus Kamandulis
8ab9680c99
Implement CONCAT function
2024-02-21 20:16:52 +02:00
Pijus Kamandulis
f4dd150bc8
Implement IS_DEFINED function
2024-02-19 00:08:51 +02:00
Pijus Kamandulis
c17509df38
Implement STRINGEQUALS
2024-02-18 22:37:09 +02:00
Pijus Kamandulis
2702156cb3
Code cleanup; Split test files
2024-02-18 21:29:42 +02:00
Pijus Kamandulis
7339e06eee
Added support for 'ORDER BY'
2024-02-17 22:26:30 +02:00
Pijus Kamandulis
eb7b3045d2
Minor query parser fixes
2024-02-17 17:25:57 +02:00
Pijus Kamandulis
03623e5a82
Added support for query parameters
2024-02-16 00:13:11 +02:00
Pijus Kamandulis
f183f308fb
Added support for 'SELECT *'
2024-02-15 23:11:46 +02:00
Pijus Kamandulis
a36b578a9b
Added support for statements inside parentheses
2024-02-15 22:58:07 +02:00
Pijus Kamandulis
b13434eeff
Added support for TOP statement
2024-02-14 21:11:15 +02:00
Pijus Kamandulis
b780e8c228
Added support for object selects
2024-02-13 22:42:18 +02:00
Pijus Kamandulis
5d2b21dc46
Added support for array selects
2024-02-13 21:57:33 +02:00