Commit graph

184 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
ae70844524 Simplify server setup configuration options 2022-02-13 23:34:21 +00:00
Tobie Morgan Hitchcock
fbd924fbac Use copy-on-write semantics for document values
Instead of blindly cloning document values (even if we don't need to mutate them), we now use copy-on-write semantics to only create a copy if we need to update a document value. This improves performance, especially when selecting documents.
2022-02-13 19:03:00 +00:00
Tobie Morgan Hitchcock
5e25435b9a Use custom string for geometries output 2022-02-11 01:59:02 +00:00
Tobie Morgan Hitchcock
556a3db60e Fix geometry collection parsing 2022-02-11 01:57:52 +00:00
Tobie Morgan Hitchcock
81164410fb Use bincode serialization for data values 2022-02-10 12:49:09 +00:00
Tobie Morgan Hitchcock
d0a0065807 Rename 'web' module to 'net' 2022-02-09 15:55:04 +00:00
Tobie Morgan Hitchcock
007ab9efbf Improve web header performance 2022-02-09 13:55:21 +00:00
Tobie Morgan Hitchcock
8cd1cfba08 Remove unnecessary public export 2022-02-09 09:27:04 +00:00
Tobie Morgan Hitchcock
6d622badc3 Check if record actually exists when selecting 2022-02-09 08:57:34 +00:00
Tobie Morgan Hitchcock
9d957849b0 Dont cancel iterator when recieving an Ignore error 2022-02-09 08:53:47 +00:00
Tobie Morgan Hitchcock
a9978fdcda Enable conversion to/from Vec<u8> for record values 2022-02-09 08:50:05 +00:00
Tobie Morgan Hitchcock
811064bb05 No need to clone data when setting 2022-02-09 08:49:22 +00:00
Tobie Morgan Hitchcock
9e50db40d8 Enable setting record keys values when record is NONE 2022-02-09 08:49:08 +00:00
Tobie Morgan Hitchcock
5e0e144acb Use Value::base() as the default record value 2022-02-09 08:23:14 +00:00
Tobie Morgan Hitchcock
be7f22e35b Don't store selected NS and DB on executor 2022-02-08 14:50:45 +00:00
Tobie Morgan Hitchcock
49a62aaba5 Add initial iterator blueprint implementation 2022-02-06 01:14:56 +00:00
Tobie Morgan Hitchcock
1600360230 Fix code spacing 2022-02-06 00:46:57 +00:00
Tobie Morgan Hitchcock
c98dfc6761 Add support for CBOR and MessagePack output serialization 2022-02-05 23:06:16 +00:00
Tobie Morgan Hitchcock
b419a36384 Add initial blueprint code for SQL export functionality 2022-02-05 09:56:03 +00:00
Tobie Morgan Hitchcock
f4029e0689 Ensure remote record fetching works correctly 2022-02-05 09:24:39 +00:00
Tobie Morgan Hitchcock
40049aefb0 Ensure futures are processed when selecting data 2022-01-31 23:58:08 +00:00
Tobie Morgan Hitchcock
744b480f88 Add Into<Vec<u8>> and From<Vec<u8>> for storage keys 2022-01-31 23:11:06 +00:00
Tobie Morgan Hitchcock
c3cf0e5e24 Ensure object diffing works correctly when values are the same 2022-01-31 21:17:28 +00:00
Tobie Morgan Hitchcock
dc22d4e40e Process array values concurrently 2022-01-30 23:32:00 +00:00
Tobie Morgan Hitchcock
89867e9bfb Remove unused constant 2022-01-30 19:31:48 +00:00
Tobie Morgan Hitchcock
da811b29bd Allow upper or lower case in OPTION statements 2022-01-30 18:59:12 +00:00
Tobie Morgan Hitchcock
6a5faf852d No need for mutable executor in tests 2022-01-29 16:20:24 +00:00
Tobie Morgan Hitchcock
76f249589a Reorder OUTPUT clause values and make NULL default 2022-01-27 11:18:41 +00:00
Tobie Morgan Hitchcock
0f4f07d5d3 Improve error message when transaction is cancelled 2022-01-27 08:25:05 +00:00
Tobie Morgan Hitchcock
ff5a5fd346 Implement SQL query debugging in response output 2022-01-27 08:21:04 +00:00
Tobie Morgan Hitchcock
92e24e2201 Buffer responses in a transaction
When running in a transaction, results are now buffered, and are output on COMMIT or CANCEL. If any error has occured, then all of the responses will be marked as failed.
2022-01-27 08:15:20 +00:00
Tobie Morgan Hitchcock
374644b9bd Improve type::thing() function
When running type::thing() with a record id the function now returns the correct record. For example type::thing("test", test:id) now returns the record test:id.
2022-01-26 13:58:39 +00:00
Tobie Morgan Hitchcock
835018d5f4 Finish implementation of executor transaction logic 2022-01-26 13:57:17 +00:00
Tobie Morgan Hitchcock
ca57df132e Ensure writable transactions work correctly 2022-01-26 13:50:38 +00:00
Tobie Morgan Hitchcock
f6f54cf4f4 Only pass immutable executor when computing values 2022-01-25 21:30:32 +00:00
Tobie Morgan Hitchcock
351ef8264a Update 3rd party dependencies 2022-01-23 15:03:37 +00:00
Tobie Morgan Hitchcock
cd26de7c3f Finish implementation of record DIFF and PATCH 2022-01-23 10:35:40 +00:00
Tobie Morgan Hitchcock
f30b953e19 Change DIFF clause to PATCH 2022-01-21 13:23:28 +00:00
Tobie Morgan Hitchcock
adff751a7e Ensure context canceller takes a reference 2022-01-21 12:51:05 +00:00
Tobie Morgan Hitchcock
3ffd194a05 Ensure CONTENT and REPLACE clauses accept only an object 2022-01-20 23:09:42 +00:00
Tobie Morgan Hitchcock
9390ae9821 Add SQL statement logging 2022-01-20 23:06:58 +00:00
Tobie Morgan Hitchcock
722f156b7d Remove unused method 2022-01-20 23:03:28 +00:00
Tobie Morgan Hitchcock
63747612e3 Return a Result from async methods on Value
Instead of silently failing, the async methods on a Value for getting, setting, and updating the value, now return a Result. This means we can chain the awaited result using the ? operator.
2022-01-20 23:02:04 +00:00
Tobie Morgan Hitchcock
c86a53502d Remove unused type 2022-01-20 20:30:54 +00:00
Tobie Morgan Hitchcock
e153c791f3 Use usize for START and LIMIT clauses 2022-01-20 20:26:28 +00:00
Tobie Morgan Hitchcock
f8848e36f5 Ensure functions can be run asynchronously 2022-01-19 14:33:55 +00:00
Tobie Morgan Hitchcock
3b5966144c Ensure errors are sent when JSON request parsing fails 2022-01-19 11:35:35 +00:00
Tobie Morgan Hitchcock
1a96bd1ed9 Add new time::group function 2022-01-18 22:23:46 +00:00
Tobie Morgan Hitchcock
b29db4d999 Improve error passing in SQL parser 2022-01-17 09:00:23 +00:00
Tobie Morgan Hitchcock
8b28a8e5f2 Remove unnecessary functions for parsing Tables 2022-01-15 22:13:32 +00:00
Tobie Morgan Hitchcock
f202bd5ab4 Improve SQL parsing errors 2022-01-15 09:51:57 +00:00
Tobie Morgan Hitchcock
91c53e4188 Improve empty query errors 2022-01-14 22:35:44 +00:00
Tobie Morgan Hitchcock
4eca618b77 Add failure recovery to web package 2022-01-14 17:13:44 +00:00
Tobie Morgan Hitchcock
67d6289d0e Attach request variables to query executor context 2022-01-14 08:31:14 +00:00
Tobie Morgan Hitchcock
3126251a65 Convert all processing code to async 2022-01-14 08:12:56 +00:00
Tobie Morgan Hitchcock
db9960fcbe Ensure wasm library builds correctly 2022-01-13 17:53:30 +00:00
Tobie Morgan Hitchcock
87e1b38f02 Add initial key-value storage key implementation 2022-01-13 17:40:20 +00:00
Tobie Morgan Hitchcock
ff6a41326a Add base library file for wasm build 2022-01-13 17:39:17 +00:00
Tobie Morgan Hitchcock
f3de9095ae Add further SQL function implementations 2022-01-13 17:37:46 +00:00
Tobie Morgan Hitchcock
6e031110bb Large update to code to convert Golang to Rust 2022-01-13 17:37:38 +00:00
Tobie Morgan Hitchcock
4f4793975e Add initial kvs backend storage code 2022-01-13 17:35:48 +00:00
Tobie Morgan Hitchcock
9e62e8f367 Add initial iterator blueprint implementation 2022-01-13 07:31:21 +00:00
Tobie Morgan Hitchcock
c51e60e706 Add query session and authentication logic 2022-01-13 07:31:02 +00:00
Tobie Morgan Hitchcock
9e5e6efa6d Add document package blueprint 2022-01-13 07:00:50 +00:00
Tobie Morgan Hitchcock
e89ebb2c79 Use Strings in context values map 2022-01-13 06:58:08 +00:00
Tobie Morgan Hitchcock
f02e12c63a Add ability to convert context errors to generic errors 2022-01-13 06:57:46 +00:00
Tobie Morgan Hitchcock
643344151b Verify database path parameter on command-line 2022-01-13 06:56:24 +00:00
Tobie Morgan Hitchcock
469de77609 Enlarge web body input size from 1KiB to 1MiB 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
74d8a36056 Improve string parsing and allow escaped characters 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
203b85e6d2 Ensure <cast> functions only operate on a single expression 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
a67bbace36 Ensure subquery parsing works correctly 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
11df879fc0 Ensure operator parsing works correctly 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
ba60c4437f Improve regex parsing and allow ‘/‘ characters 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
1f9cad9431 Ensure arrays and objects serialize correctly 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
9ae2cc7cd1 Implement contains operator functionality 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
bf9ceaf693 Output complex SQL operators as text not symbols 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
92e9f17ade Add exactly equal operator (==) 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
70dfe88dff Add additional geo functions 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
1324fed1b3 Ensure polygon has at least 1 geographical point 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
b196f16f68 Remove unused fields from database Response struct 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
5b58c5fa0e Convert Parent to Runtime for query variable storage 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
7768e85145 Enable embedded paths in param names 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
5d57c105b9 Continue with initial code 2021-12-14 10:24:54 +00:00
Tobie Morgan Hitchcock
dfcfb32903 Add initial code 2021-12-14 10:24:54 +00:00