Tobie Morgan Hitchcock
ffc3ed82f7
Simplify external API when working with Datastore
2022-05-04 00:07:46 +01:00
Tobie Morgan Hitchcock
7e2eae32c5
Ensure query auth level checks are logically correct
2022-04-01 00:36:23 +01:00
Tobie Morgan Hitchcock
b3c4f982ec
Fix clippy lint errors
2022-03-25 20:31:45 +00:00
Tobie Morgan Hitchcock
7e4bf91a48
Forbid all usage of unsafe code
2022-03-23 15:12:29 +00:00
Tobie Morgan Hitchcock
2a0d46a2b6
Remove unused macros
2022-03-07 18:14:42 +00:00
Tobie Morgan Hitchcock
d1c2daaee4
Apply cargo clippy lint recommendations
2022-03-05 14:42:58 +00:00
Tobie Morgan Hitchcock
d5c53b7791
Extract core surrealdb code into separate library
2022-02-22 14:16:50 +00:00
Tobie Morgan Hitchcock
12aea63928
Use trice instead of std::time for performance measurement
2022-02-19 23:30:43 +00:00
Tobie Morgan Hitchcock
222e417c79
Change method argument names
2022-02-19 23:09:23 +00:00
Tobie Morgan Hitchcock
8a08de951e
Ensure session auth data is passed to executor options
2022-02-18 19:09:00 +00:00
Tobie Morgan Hitchcock
691d6ac895
Move byte formatting macro to macro module
2022-02-17 08:05:25 +00:00
Tobie Morgan Hitchcock
10a76ec3a1
Inject datastore instance instead of globally instantiated instance
2022-02-17 08:04:08 +00:00
Tobie Morgan Hitchcock
b98986fa12
Remove unnecessary 'anyhow' crate
2022-02-16 23:45:23 +00:00
Tobie Morgan Hitchcock
a5c1d95a64
Add initial implementation for parallel execution
2022-02-15 03:40:01 +00:00
Tobie Morgan Hitchcock
36d114be55
Simplify module import statements
2022-02-15 03:34:57 +00:00
Tobie Morgan Hitchcock
f22352aee6
Switch to asynchronous owned mutex locks in underlying kv storage
2022-02-15 03:33:16 +00:00
Tobie Morgan Hitchcock
efa67bb043
Only pass transaction when processing queries
...
Instead of passing the executor instance, we only need to pass the current transaction which is to be used for processing and running any queries.
2022-02-15 01:05:39 +00:00
Tobie Morgan Hitchcock
acc466c360
Remove unnecessary imports
2022-02-15 00:15:53 +00:00
Tobie Morgan Hitchcock
113d02cbfc
Add functionality to extract a single query response
2022-02-14 23:21:12 +00:00
Tobie Morgan Hitchcock
ea67af5a29
Ensure DELETE statements WHERE clauses are processed
2022-02-14 22:20:11 +00:00
Tobie Morgan Hitchcock
5f3c5b8e73
Replace xid with nanoid for record ID generation
2022-02-14 10:19:18 +00:00
Tobie Morgan Hitchcock
6715ac251b
Allow any value in CONTENT / REPLACE / MERGE clauses
2022-02-13 23:39:10 +00:00
Tobie Morgan Hitchcock
1ca5f085c5
Revert geolocation point display output format
2022-02-13 23:37:54 +00:00
Tobie Morgan Hitchcock
9a2f8f737a
Simplify query variable creation
2022-02-13 23:37:30 +00:00
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