Tobie Morgan Hitchcock
45094c76ce
Use custom serialization format
2023-03-31 23:49:52 +01:00
Rushmore Mushambi
179878d672
Add compile-time guarantees to make Surreal::delete
safer ( #1753 )
2023-03-31 23:49:29 +01:00
Tobie Morgan Hitchcock
725b03729b
Enable full-type serialisation on HTTP import
route
2023-03-31 15:31:24 +01:00
Diptesh Choudhuri
494203d358
Allow exporting to stdout ( #1701 )
2023-03-30 19:13:26 +01:00
Rushmore Mushambi
3e80aa9914
Implement to_value
for sql::Value
( #1659 )
...
`sql::Value` is an integral part of `surrealdb`. It's the internal type used by our storage layer. Because of this, we do a lot of converting between this type and native Rust types. Currently this conversion is done through `JSON` using the `serde_json` crate because we do not have our own custom data format implementation. This works because `SQL` is a superset of `JSON`. This, however, means that this conversion is lossy and can cause surprises in some cases. For example expecting record IDs to be deserialized into a `String` instead of its corresponding Rust native type.
This change implements a custom data format around `sql::Value` and introduces a `to_value` function that facilitates that conversion.
2023-03-30 11:41:44 +01:00
Tobie Morgan Hitchcock
e0cad89a8c
Improve error logging within CLI tool
2023-03-29 19:19:46 +01:00
Salvador Girones Gil
565717659a
Add functionality for open telemetry tracing ( #1727 )
2023-03-29 19:16:18 +01:00
Tobie Morgan Hitchcock
0c95126573
Add support for full binary serialization on HTTP endpoints
2023-03-27 13:52:28 +01:00
Tobie Morgan Hitchcock
2769033451
Update 3rd party dependencies
2023-03-25 20:49:00 +00:00
Emmanuel Keller
19c287a011
Implement transaction debug tracing ( #1668 )
2023-03-16 09:11:30 -04:00
Tobie Morgan Hitchcock
a8df2b6a6f
Allow any Value
in arguments to RPC use
method
2023-03-07 09:55:35 +00:00
Tobie Morgan Hitchcock
7dcb0f83fa
Add trace logging to WebSocket implementation
2023-03-07 09:54:58 +00:00
Tobie Morgan Hitchcock
d1558a63ad
Use string formatting for SQL output in CLI
...
Related to #246
2023-03-07 09:54:58 +00:00
Igor Morozov
b10beda30c
Add isready
CLI command for checking server health ( #1679 )
2023-03-07 09:53:56 +00:00
Tobie Morgan Hitchcock
454612487a
Allow sending Table
type for LIVE
query RPC method
2023-02-14 11:01:31 +00:00
Tobie Morgan Hitchcock
5d55f28b98
Fix linting warning
2023-02-13 16:05:02 +00:00
Tobie Morgan Hitchcock
efbc5d3219
Add all WebSockets to a global collection
2023-02-13 12:20:13 +00:00
Tobie Morgan Hitchcock
ac9a574c00
Simplify passing of authentication tokens to client
2023-02-11 15:56:14 +00:00
Tobie Morgan Hitchcock
3f0afd9d72
Fix base64 authentication decoding support
...
Closes #1625
2023-02-09 10:54:52 +00:00
Tobie Morgan Hitchcock
c90ff5f5d1
Listen to different OS signals on Windows and Unix
2023-02-08 13:19:08 +00:00
Salvador Girones Gil
15f7fb3eee
Ensure SurrealDB listens to SIGTERM/SIGINT signals and quits gracefully ( #1639 )
2023-02-05 21:03:21 +00:00
Tobie Morgan Hitchcock
84b026679f
Update clippy linting tests
2023-02-03 11:47:07 +00:00
Tobie Morgan Hitchcock
cf11eb7f54
Add clippy::mem_forget
denial rule
2023-02-03 11:46:39 +00:00
Tobie Morgan Hitchcock
9282feac1f
Allow empty params object from text-based WebSocket clients
...
Closes #1610
2023-01-20 00:54:33 +00:00
Tobie Morgan Hitchcock
0e70e515be
Fix base64 authentication token decoding
2023-01-18 00:08:39 +00:00
Tobie Morgan Hitchcock
7682a97a33
Decode urlencoded path parameters automatically
...
Closes #1396
2023-01-17 14:10:21 +00:00
Tobie Morgan Hitchcock
8f89f8729c
Update 3rd party dependencies
...
Closes #1593
2023-01-17 09:00:30 +00:00
Rushmore Mushambi
af88fcef38
Make cli::sql
default to using a WebSocket connection ( #1592 )
2023-01-11 13:47:21 +00:00
Rushmore Mushambi
953a2008e2
Rename the engines
module to engine
( #1576 )
2023-01-07 08:32:18 +00:00
Rushmore Mushambi
b3d9ce2c68
Ensure CLI exits with non-zero code on errors ( #1567 )
2022-12-31 08:03:19 +00:00
Rushmore Mushambi
f1b6c44603
Use new client library in CLI import
command ( #1566 )
2022-12-31 08:02:53 +00:00
Rushmore Mushambi
a908d6dd10
Use new client library in CLI export
command ( #1565 )
2022-12-31 08:02:41 +00:00
Rushmore Mushambi
a24bb4f4b8
Allow memory
as an address endpoint in CLI sql
command ( #1563 )
2022-12-30 23:53:45 +00:00
Rushmore Mushambi
7c199ff586
Use new client library in CLI sql
command ( #1561 )
2022-12-30 21:27:19 +00:00
Rushmore Mushambi
c2dce39f91
Integrate client library into surrealdb
crate ( #1514 )
2022-12-30 08:23:19 +00:00
Michal Jirman
157f7c8abe
Add CLI option flag to disable banner ( #1537 )
2022-12-21 11:42:59 +00:00
Tobie Morgan Hitchcock
44c3f32f69
Fix clippy linting warnings
2022-12-20 10:30:40 +00:00
Tobie Morgan Hitchcock
4067efd1e8
Add a user-agent header to CLI HTTP requests
2022-12-20 10:30:06 +00:00
George
a2038f239b
Fix future clippy linting warnings ( #1423 )
2022-12-18 16:00:36 +00:00
Rinat Shay
ad004999a8
Use temporary HTTP redirect instead of permanent ( #1517 )
2022-12-09 16:48:54 +00:00
Tobie Morgan Hitchcock
406e277c3b
Ensure crate builds with no-default-features
2022-12-07 19:30:29 +00:00
CelebrateVC
f0745386cf
Improve code comments for documentation ( #1476 )
2022-11-23 09:42:59 +00:00
Igor Morozov
ddaea59d05
Improve error messages for CLI import/export ( #1455 )
2022-11-23 09:35:29 +00:00
Tobie Morgan Hitchcock
4b14837009
Fix clippy lint warnings
2022-11-23 09:09:24 +00:00
Finn Bear
ff65ef56fc
Don't panic on invalid UTF-8 in web requests ( #1422 )
2022-10-30 23:28:57 +00:00
Tobie Morgan Hitchcock
c12a1cc1fa
Fix typo in code comments
2022-10-30 01:32:27 +00:00
Rushmore Mushambi
12ded8b066
Log version when starting the server ( #1358 )
2022-10-27 01:58:08 -07:00
Tobie Morgan Hitchcock
f32fb516eb
Rearrange code order
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
a074dc9af5
Add suport for WebSocket RPC binary protocol
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
ab4c85bf5d
Return a single record when requesting a single record with WebSocket
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
05485406c4
Add support for more input types in WebSocket RPC methods
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
e03f7e00db
Add alias for WebSocket RPC method ‘modify’ to ‘patch’
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
1015a948fd
Add alias for WebSocket RPC method ‘change’ to ‘merge’
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
926356d23b
Don’t allow WebSocket RPC authenticate
method to be called with no token value
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
d2e7a8532d
Don’t respond with an id
if none was specified in the WebSocket RPC query
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
df8f297221
Add WebSocket RPC unset
method for clearing a parameter
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
70a263f799
Add code comments to WebSocket RPC methods
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
a0d86248e2
Enable different output serialization formats in WebSocket RPC
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
d12384f3fb
Change method signature for converting strings to table names
2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
3cbb5eed78
Allow datetimes as an id
parameter in the WebSocket RPC message
2022-10-25 06:06:02 -07:00
Tobie Morgan Hitchcock
6ff1e250de
Add improved handling of different WebSocket message types
2022-10-19 23:57:05 +01:00
Rushmore Mushambi
f0eaf2bd19
Improve RPC method return types ( #1384 )
2022-10-19 23:54:41 +01:00
Tobie Morgan Hitchcock
c098fe3380
Respond to WebSocket ping messages with a pong message
2022-10-19 21:11:15 +01:00
Tobie Morgan Hitchcock
1becd3ab55
Don’t throw an RPC Error when no params
key is specified
2022-10-19 18:57:03 +01:00
Tobie Morgan Hitchcock
65f8194a1f
Fix code linting warnings
2022-10-19 15:35:42 +01:00
Tobie Morgan Hitchcock
18d69a620c
Add WebSocket ping->pong message ticker
2022-10-19 14:56:43 +01:00
Tobie Morgan Hitchcock
7ed0af4750
Add support for SQL parameters in HTTP REST endpoints
2022-10-17 02:00:15 +01:00
Tobie Morgan Hitchcock
810e174c63
Code tidy up
2022-10-16 23:20:57 +01:00
Tobie Morgan Hitchcock
264f208379
Change the log identifier for web requests
2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
f31b7d7d17
Allow number values for JSON RPC id
field
2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
9546b07d71
Add version method to HTTP RPC endpoint
2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
90a5e82e72
ENsure session is completely clearer when invalidated
...
Closes #1314
2022-10-04 22:26:03 +01:00
Tobie Morgan Hitchcock
d8c7efefd4
Ensure integer Record IDs are treated correctly in HTTP REST endpoints
...
Closes #1281
2022-10-01 15:50:39 +01:00
Tobie Morgan Hitchcock
711df70bb9
Allow namespaced claim aliases in JWT token
...
Closes #1269
Closes #1268
2022-09-29 07:54:48 +01:00
Rushmore Mushambi
bcac94f9d6
Add additional build metadata to version identifier ( #1254 )
2022-09-28 20:13:40 +01:00
Tobie Morgan Hitchcock
a96c6ff8ca
Allow authentication token to be verified with or without Bearer
or Basic
prefix
2022-09-28 01:19:18 +01:00
Tobie Morgan Hitchcock
a82e45f461
Enable more customisable JWT verification
...
Closes #1244
2022-09-27 22:07:41 +01:00
Rushmore Mushambi
c064890284
Fix the build ( #1248 )
2022-09-27 16:35:03 +01:00
Tobie Morgan Hitchcock
abd15ec55c
Use Accept header on /import and /export HTTP routes
...
Closes #1245
2022-09-27 15:58:20 +01:00
Tobie Morgan Hitchcock
d8953ab7f8
Ensure HTTP session is not verified multiple times
2022-09-25 23:13:29 +01:00
Tobie Morgan Hitchcock
75d1e86990
Add DEFINE TOKEN … ON SCOPE … functionality
...
Closes #144
2022-09-25 22:58:38 +01:00
Tobie Morgan Hitchcock
0cb865dc44
Support different Content-Type outputs on /signup and /signin routes
...
Closes #1223
2022-09-25 13:05:56 +01:00
Tobie Morgan Hitchcock
2fccc87fab
Don’t prettify empty responses in SQL REPL
2022-09-25 10:56:57 +01:00
Tobie Morgan Hitchcock
b9603aacab
Improve HTTP error messages and status codes
2022-09-25 10:56:57 +01:00
Tobie Morgan Hitchcock
b4209180b6
Ensure server listents to SIGINT/SIGTERM signals
...
Closes #120
2022-09-22 03:01:11 +01:00
Tobie Morgan Hitchcock
ffeb56fc7e
Redirect to temporary website holding page for app interface
...
Closes #219
2022-09-21 01:03:38 +01:00
Tobie Morgan Hitchcock
1dd08bedaa
Handle errors properly when WebSocket client disconnects improperly
...
Closes #181
Closes #195
Closes #140
2022-09-20 23:04:40 +01:00
Tobie Morgan Hitchcock
d6b544771f
Rename function for simplicity
2022-09-19 12:28:41 +01:00
Tobie Morgan Hitchcock
a7444a7c8e
Add authentication token claims data to session object
...
Closes #135
2022-09-17 03:05:23 +01:00
Ryan Russell
b4b2ceb187
Make readability fixes to Rust code comments ( #157 )
2022-09-17 02:50:10 +01:00
Tobie Morgan Hitchcock
8403238dbb
Use Accept header instead of Content-Type header for client content negotiation
2022-09-16 02:19:06 +01:00
Tobie Morgan Hitchcock
b2f4101a9c
Improve HTTP request error messages
...
Closes #153
2022-09-16 00:41:16 +01:00
Tobie Morgan Hitchcock
23d1132526
Ignore blank/empty lines in SurrealDB SQL REPL
...
Closes #147
2022-09-15 00:39:25 +01:00
Tobie Morgan Hitchcock
74c3b6d708
Don’t automatically unwrap errors when sending on WebSocket
...
Closes #140
2022-09-13 21:50:04 +01:00
Tobie Morgan Hitchcock
498b0a4530
Fix linting errors
2022-09-10 06:11:56 +01:00
Tobie Morgan Hitchcock
eba00bbca3
Add debug logging for authentication attempts
2022-09-10 05:44:45 +01:00
Tobie Morgan Hitchcock
d20851325b
Allow uppercase or lowercase keys in JWT authentication tokens
2022-09-10 05:43:50 +01:00
Tobie Morgan Hitchcock
6f0ff853f8
Ensure session data is stored on the session after signup/signin
2022-09-05 00:53:35 +01:00
Tobie Morgan Hitchcock
5ca3b74e59
Add HTTP /health endpoint for checking database and datastore status
...
Closes #56
2022-09-01 00:28:43 +01:00
Michael Delaney
960061584d
Add support for specifying database path using env variable DB_PATH ( #78 )
2022-08-31 14:03:11 +01:00
Tobie Morgan Hitchcock
cdf244f0f5
Simplify command line argument verification code
2022-08-29 13:02:20 +01:00
Tobie Morgan Hitchcock
65d91b122e
Add support for simpler datastore paths
2022-08-29 12:30:00 +01:00
Tobie Morgan Hitchcock
69c166fd8e
Only send NS and DB header in SQL REPL requests if specified
2022-08-26 23:16:13 +01:00
clawcastle
2bfcb9d694
Make --ns and --db arguments optional in command-line REPL ( #63 )
...
Closes #34
2022-08-26 21:51:44 +01:00
Tobie Morgan Hitchcock
e5a78bed06
Allow root authentication over WebSocket connection
2022-08-23 23:44:13 +01:00
Kian-Meng Ang
40157f6170
Fix typos ( #42 )
...
Found via `codespell -L crate,inout,ser,fetchs,te,tre,whats`.
2022-08-21 13:13:38 +01:00
Tobie Morgan Hitchcock
b8c793f7a4
Only log successful startup after server binds to desired port
2022-08-17 22:45:31 +01:00
Yusuke Kuoka
1d3880d652
Initial implementation of SurrealDB KVS for FoundationDB ( #37 )
...
Referenced in discussion #25
Closes #38
2022-08-15 19:35:41 +01:00
Tobie Morgan Hitchcock
70a6c5a1ee
Enable server configuration to be setup with environment variables
2022-08-12 21:21:32 +01:00
Tobie Morgan Hitchcock
653ced7d58
When enabled, log the root authentication username
2022-08-12 16:33:15 +01:00
Tobie Morgan Hitchcock
9ed50a9514
Add command-line SurrealQL REPL
2022-08-06 13:13:14 +01:00
Tobie Morgan Hitchcock
0043e38bef
Add —host command-line option as an alias of —conn
2022-08-06 11:34:17 +01:00
Tobie Morgan Hitchcock
f535501ec2
Improve CLI command descriptions
2022-07-30 22:56:54 +01:00
Tobie Morgan Hitchcock
58698f58fe
Update default endpoint for import/export requests
2022-07-29 10:39:49 +01:00
Tobie Morgan Hitchcock
fc68e59644
Simplify import / export response streaming
2022-07-29 10:37:12 +01:00
Tobie Morgan Hitchcock
d67e231431
Ensure NS+DB values are required on export
CLI command
2022-07-29 10:36:54 +01:00
Tobie Morgan Hitchcock
c0d851751b
Ensure NS+DB values are required on import
CLI command
2022-07-29 10:36:49 +01:00
Tobie Morgan Hitchcock
f46acec96f
Ensure error is returned when NS/DB header are not present
2022-07-29 10:35:15 +01:00
Tobie Morgan Hitchcock
2646ea119e
Temporarily disable HTTP response compression
...
Disable response compression until `Accept-Encoding` headers are properly evaluated, and the compression can be chosen based on the HTTP request. This relies on https://github.com/seanmonstar/warp/pull/513 being implemented.
2022-07-29 10:33:49 +01:00
Tobie Morgan Hitchcock
d619633340
Enable new database strict mode configuration
2022-07-27 18:20:04 +01:00
Tobie Morgan Hitchcock
7777e3bccd
Log a message on startup with root authentication info
...
Closes #11
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
960a5a768b
Disable root authentication when no password is set
...
Closes #10
2022-07-24 01:15:26 +01:00
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