151 Commits

Author SHA1 Message Date
Josh Baker
16055ff745
Merge pull request #743 from iwpnd/fix/whereins
fix: whereins defaulting to lower case
2024-06-03 19:38:33 -07:00
Josh Baker
0787085983
Merge pull request #742 from iwpnd/fix/fset/case
fix: FSET lowercasing upper case fields
2024-06-03 19:38:21 -07:00
Josh Baker
4ef11351f3
Merge pull request #738 from Kilowhisky/cors_support
Add support for CORS in http requests
2024-06-03 19:37:27 -07:00
Benjamin Ramser
a47f02b02d fix: whereins defaulting to lower case 2024-05-27 22:54:55 +02:00
Benjamin Ramser
718bff54c1 fix: FSET lowercasing upper case fields
fixes #741
2024-05-25 12:16:58 +02:00
Kilowhisky
1a437d3855 Access-Control-Allow-Headers is apparently required by the spec 2024-05-06 22:07:07 -07:00
Kilowhisky
e653b765b7 Add tests 2024-05-06 21:59:32 -07:00
oftenoccur
c3b9b40ee8 chore: fix some typos in comments
Signed-off-by: oftenoccur <ezc5@sina.com>
2024-04-11 11:16:44 +08:00
Josh Baker
9e869e04c3
Merge branch 'master' into exists 2024-03-24 22:54:40 -07:00
Chris Rice
c17482afa4 Add EXIST and FEXIST command 2024-03-19 03:19:16 +00:00
Chris Rice
48394af724 Add FGET command 2024-03-18 20:10:04 +00:00
tidwall
ae3e549cfc Add missing test 2022-12-29 11:58:10 -07:00
tidwall
4e67d1497c Fixed fields not persisting
This commit fixes a regression in 1.30.0, where an existing
object which has fields will lose those fields when the object
geometry is overwritten using a SET or JSET and no new fields
are provided.

fixes #668
2022-12-29 11:43:24 -07:00
tidwall
e60ea706aa Fix field names converting to lowercase 2022-12-14 04:23:21 -07:00
tidwall
0c95858f62 Allow enough time for client to connect 2022-11-22 07:50:45 -07:00
Josh Baker
cc942b2c1c
Merge pull request #663 from program--/lua-sanitize
Prevent certain Lua modules/functions from loading
2022-11-21 04:56:02 -07:00
tidwall
6b8211c468 Fixed invalid BOUNDS result
This commit ensures that BOUNDS always returns Polygon.
2022-11-21 04:47:56 -07:00
program--
9a531a8945 fix: set package module to nil in lua namespace; prevents calling loaders 2022-11-09 13:50:43 -08:00
program--
ab8e1cc202 fix: handle EVAL vulnerability; open subset of lua modules 2022-11-09 13:33:37 -08:00
tidwall
9c471e3f9c Replace out old style atomics 2022-11-03 10:07:17 -07:00
tidwall
bdc80a7f70 Added WHERE expressions
It's now possible to do:

   SCAN fleet WHERE "properties.speed < 25 || properties.speed > 50"

Uses javascript-like syntax using the https://github.com/tidwall/expr package.

Automatically reference fields and GeoJSON properties:

   SET fleet truck1 FIELD speed 65 POINT -112 33

Can be queried:

   SCAN fleet WHERE "speed > 50"
   SCAN fleet WHERE "id == 'truck1'"
   SCAN fleet WHERE "speed > 50 && id == 'truck1'"
2022-10-20 17:01:12 -07:00
tidwall
2075bbeae4 Allow for queries GeoJSON properties
This commit allows for performing WHERE on the object's GeoJSON
properties member.

For example:

    SET fleet truck1 OBJECT '{"type":"Feature","geometry":{"type":"Point","coordinates":[-112,33]},"properties":{"speed":50}}'

You can now do:

    SCAN fleet WHERE properties.speed > 50
2022-10-20 14:26:34 -07:00
tidwall
959f551f7b Increase timeout for slow CIs 2022-10-20 11:23:54 -07:00
tidwall
cf7f49fd9b Add field path queries for json and comparison operators
It's now possible to query a JSON field using a GJSON path.

   SET fleet truck1 FIELD props '{"speed":58,"name":"Andy"}' POINT 33 -112

You can then use the GJSON type path to return the objects that match the WHERE.

   SCAN fleet WHERE props.speed 50 inf
   SCAN fleet WHERE props.name Andy Andy

Included in this commit is support for '==', '<', '>', '<=', '>=', and '!='.
The previous queries could be written like:

    SCAN fleet WHERE props.speed > 50
    SCAN fleet WHERE props.name == Andy
2022-10-20 11:17:01 -07:00
tidwall
6b310cebb5 Fixed zero-field to deleting existing field 2022-10-19 04:36:17 -07:00
tidwall
0723eb5b9f Clean up test output 2022-09-27 14:42:52 -07:00
tidwall
e1df4dbf78 Better OUTPUT tests 2022-09-27 14:19:57 -07:00
tidwall
77b4efa55f Better FOLLOW/MONITOR tests 2022-09-27 14:06:24 -07:00
tidwall
8e0bf1957d wip - follower tests 2022-09-27 13:09:28 -07:00
tidwall
06ebeecf4a Better AOFMIGRATE tests 2022-09-27 10:06:47 -07:00
tidwall
cfc9673957 wip - Better AOFMIGRATE tests 2022-09-27 09:47:09 -07:00
tidwall
46927b476f Better TEST tests 2022-09-27 08:18:17 -07:00
tidwall
659160289c Better READONLY tests 2022-09-26 17:58:51 -07:00
tidwall
588207d162 Added AOFSHINK tests 2022-09-26 16:43:55 -07:00
tidwall
ad8d40dee5 Better AOF/AOFMD5 tests 2022-09-26 15:43:14 -07:00
tidwall
c093b041e1 Parallel integration tests 2022-09-26 13:26:46 -07:00
tidwall
3cb8e0509a Thread safe log and support for concurrent tile38 instances 2022-09-26 10:02:02 -07:00
tidwall
97da6d70c4 Moved metrics into step test 2022-09-25 06:34:27 -07:00
tidwall
906824323b More graceful Tile38 shutdown 2022-09-25 06:28:17 -07:00
tidwall
f2c3b3924a wip - aof tests 2022-09-25 03:54:22 -07:00
tidwall
13ceb7da41 Removed global variables from core package
The core package uses global variables that keep from having
more than one Tile38 instance runnning in the same process.

Move the core variables in the server.Options type which are
uniquely stated per Server instance.

The build variables are still present in the core package.
2022-09-24 15:44:32 -07:00
tidwall
0301545fe6 Better INFO tests 2022-09-24 14:28:47 -07:00
tidwall
d8ecbba0be Better CLIENT tests 2022-09-24 13:41:36 -07:00
tidwall
e6cced4c4a Fix hang on empty RESP response 2022-09-24 07:22:39 -07:00
tidwall
5460998086 wip - fixing the empty response error 2022-09-24 06:22:58 -07:00
tidwall
9c8e7e90e1 Clean up some tests 2022-09-23 17:54:49 -07:00
tidwall
5c455cbe10 Better HEALTHZ tests 2022-09-23 17:34:09 -07:00
tidwall
5bcef43894 Better KEYS tests 2022-09-23 16:12:32 -07:00
tidwall
295a9c45a8 Better SET/PERSIST/TTL/STATS tests 2022-09-23 15:29:46 -07:00
tidwall
7fa2dc4419 Better FSET tests
Execute oom check immediately after setting maxmemory
2022-09-23 12:42:39 -07:00