Commit graph

1447 commits

Author SHA1 Message Date
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
15fc4a0126 Ensure statements are properly escaped when output as a string 2022-05-15 09:42:32 +01:00
Tobie Morgan Hitchcock
75de89d9a1 Add support for both writeable and read-only transactions 2022-05-14 22:30:49 +01:00
Tobie Morgan Hitchcock
1017e2fffb Don’t clone variables when processing sub-contexts
Closes SUR-53

When creating a new context for subqueries or statement clauses, we used to have to clone any variables/values, and freeze the context, so that it could be used across threads and async boundaries.

Now with the new executor pattern for parallel queries, we can pass references instead, improving performance by removing unnecessary cloning of values.
2022-05-14 13:38:17 +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
4740fa7bb1 Only set constant variable when needed with parallel feature 2022-05-13 22:00:51 +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
6ff2a78c88 Don’t use static futures for parallel query execution
Instead of using static futures when processing a query in parallel, we now use a new executor model, which allows us to process futures which make use of references. As a result, we can remove the need to store each statement in an Arc.
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
ca80e73285 Fix clippy lint warnings 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
d67ea597e3 Add default root username and password for testing 2022-05-11 15:23:07 +01:00
Tobie Morgan Hitchcock
84b96e593c Update default cargo clean command 2022-05-11 15:23:07 +01:00
Tobie Morgan Hitchcock
cc40e26e3f Add additional functions on Auth type for validating authentication 2022-05-11 15:23:07 +01:00
Tobie Morgan Hitchcock
640c0b0b12 Allow for alternative phrasing in DEFINE FIELD clause 2022-05-09 23:24:42 +01:00
Tobie Morgan Hitchcock
43d361646c Ensure value mem size test passes correctly 2022-05-09 08:19:01 +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
82140410d6 Remove unused 3rd party crate 2022-05-07 14:58:53 +01:00
Tobie Morgan Hitchcock
a03d5a7551 Implement SQL Regex as a newtype tuple struct 2022-05-07 14:57:14 +01:00
Tobie Morgan Hitchcock
79e9269f14 Add value size checks tests 2022-05-06 23:33:19 +01:00
Tobie Morgan Hitchcock
fc2c48647c Allow large enum variant size for Datastore and Transaction 2022-05-06 23:09:49 +01:00
Tobie Morgan Hitchcock
5921a6b632 Fix module_inception clippy lint warning 2022-05-06 23:09:32 +01:00
Tobie Morgan Hitchcock
1e2ba72e37 Reduce mem size of Error enum types 2022-05-06 23:09:08 +01:00
Tobie Morgan Hitchcock
2239e4becf Improve Datastore and Transaction errors 2022-05-06 21:57:12 +01:00
Tobie Morgan Hitchcock
4d072a7f6c Reduce mem size of SQL Model by converting to an enum 2022-05-06 17:02:44 +01:00
Tobie Morgan Hitchcock
1e49a00840 Update 3rd party dependencies 2022-05-05 12:40:05 +01:00
Tobie Morgan Hitchcock
0125cb28b0 Implement Deref on SQL Order type 2022-05-05 12:27:08 +01:00
Tobie Morgan Hitchcock
89f731c903 Implement SQL Idiom as a newtype tuple struct 2022-05-05 12:26:46 +01:00
Tobie Morgan Hitchcock
041f220727 Only import tokio sync feature 2022-05-05 12:20:45 +01:00
Tobie Morgan Hitchcock
683039e08f Don’t duplicate methods on items which implement Deref 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
4824f1b627 Enable multi duration types (1d12h30m) in SQL 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
98fc9055af Implement SQL Duration as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
10f2911d44 Implement SQL Datetime as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
0a3fe67358 Implement SQL Cond as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
1ed5df005e Implement SQL Strand as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
ed92fb4d85 Implement SQL Ident as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
3233660037 Implement SQL Table as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
1dd3095783 Implement SQL Timeout as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
42fa91c7bd Implement SQL Script as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
1f05b32f93 Implement SQL Param as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
bd6f01971f Implement SQL Query as a newtype tuple struct 2022-05-05 10:19:19 +01:00
Tobie Morgan Hitchcock
643592d750 Implement SQL Split as a newtype tuple struct 2022-05-05 10:19:19 +01:00
Tobie Morgan Hitchcock
b6cc3ca1ff Implement SQL Fetch as a newtype tuple struct 2022-05-05 10:19:19 +01:00