Tobie Morgan Hitchcock
db2208a33a
Store all macros in a separate module
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
428fcf697a
Ensure CORS headers are set on failed HTTP responses
...
Closes #6
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
05cf6960c2
Set correct description for ‘—log’ command argument
2022-07-19 23:27:06 +01:00
Tobie Morgan Hitchcock
e1c6245151
Use new ‘—log’ command argument to specify server log level
2022-07-19 13:39:35 +01:00
Tobie Morgan Hitchcock
91b8baff3d
Set default logging level for import/export/backup commands
2022-07-19 12:58:19 +01:00
Tobie Morgan Hitchcock
7860a205db
Use configuration constants in version cli command
2022-07-19 12:54:50 +01:00
Tobie Morgan Hitchcock
a2619a8d72
Don’t show default random password in command-line help
2022-07-19 12:29:43 +01:00
Tobie Morgan Hitchcock
81bad3211d
Improve command-line logging
2022-07-19 09:28:24 +01:00
Tobie Morgan Hitchcock
4468e10bd1
Change the default port to 8000
2022-07-18 18:49:43 +01:00
Tobie Morgan Hitchcock
d425f67a8b
Allow NULL and missing values in RPC query method
2022-07-08 21:56:04 +01:00
Tobie Morgan Hitchcock
11a3911f70
Add RPC let’ command as a duplicate of ‘set’ command
2022-07-08 21:55:44 +01:00
Tobie Morgan Hitchcock
3c7bd098f3
Enable concurrent requests in WebSocket RPC Server
2022-07-07 11:25:22 +01:00
Tobie Morgan Hitchcock
4438415b55
Fix error in RPC Modify method query
2022-07-07 11:22:41 +01:00
Tobie Morgan Hitchcock
508538e0cc
Add initial WebSocket JSON RPC implementation
2022-07-04 02:32:26 +01:00
Tobie Morgan Hitchcock
410295c800
Improve map! macro to allow extending the map with other map
2022-07-04 02:02:03 +01:00
Tobie Morgan Hitchcock
983a7b3f5c
Add mrg! macro for merging Maps together
2022-07-04 02:02:03 +01:00
Tobie Morgan Hitchcock
7bb4aa74f3
Move authentication code to separate module
2022-07-04 01:46:09 +01:00
Tobie Morgan Hitchcock
187d9c08dc
Allow ‘application/octet-stream’ content-type when importing
2022-07-04 01:25:35 +01:00
Tobie Morgan Hitchcock
d04db02ee0
Add introductory message to command-line app
2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
eff4d2c5e9
Implement scope signup and signin functionality
2022-06-20 12:29:06 +01:00
Tobie Morgan Hitchcock
b4e2082196
Use BTreeMap for database execution variables
2022-06-20 02:13:28 +01:00
Tobie Morgan Hitchcock
52e8954ae4
Ensure library works in multi-threaded and single-threaded environments
2022-05-16 00:04:11 +01:00
Tobie Morgan Hitchcock
f414198fad
Only begin a transaction if needed for authentication
2022-05-13 22:07:56 +01:00
Tobie Morgan Hitchcock
7bd5802e99
Remove tokio as a dependency
...
Closes SUR-102
2022-05-13 21:57:40 +01:00
Tobie Morgan Hitchcock
e4619be89a
Implement WebSocket queries for /sql endpoint
2022-05-11 22:34:28 +01:00
Tobie Morgan Hitchcock
d29961ee19
Ensure Errors can be converted into Strings
2022-05-11 21:43:11 +01:00
Tobie Morgan Hitchcock
f5687abeab
Add documentation comments to main binary package
2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
17e8ea55b5
Implement SQL database exporting and importing
2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
3498e57e04
Implement web authentication session validation
2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
d761a6df47
Add TLS support to SurrealDB server
2022-05-11 15:23:08 +01:00
Tobie Morgan Hitchcock
ba7c31e2dc
Improve server configuration parsing and option storage
2022-05-11 15:23:08 +01:00
Tobie Morgan Hitchcock
69b18cc659
Change content length limits of http routes
2022-05-11 15:23:08 +01:00
Tobie Morgan Hitchcock
f7b82bc7bd
When unset, ensure default root password in randomised
2022-05-07 16:11:19 +01:00
Tobie Morgan Hitchcock
0ff3d0f7d0
Remove auth CLI argument and use user + pass instead
2022-05-07 15:13:58 +01:00
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