Tobie Morgan Hitchcock
073285574a
No need to surround statements with an Arc
2022-05-18 12:18:00 +01:00
Tobie Morgan Hitchcock
82cbfad38d
Update 3rd party dependencies
2022-05-16 10:31:04 +01:00
Tobie Morgan Hitchcock
0edd707784
Only include executor crate with parallel feature
2022-05-16 10:28:47 +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
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
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
d29961ee19
Ensure Errors can be converted into Strings
2022-05-11 21:43:11 +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
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
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
Tobie Morgan Hitchcock
745fa4fd97
Implement SQL Group as a newtype tuple struct
2022-05-05 10:19:05 +01:00
Tobie Morgan Hitchcock
ec6cfc4fef
Ensure TIMEOUT clauses are processed correctly
2022-05-04 23:37:57 +01:00
Tobie Morgan Hitchcock
143da56728
Implement SQL Array as a newtype tuple struct
2022-05-04 23:37:57 +01:00
Tobie Morgan Hitchcock
3ee1ddb5b1
Implement SQL Object as a newtype tuple struct
2022-05-04 23:37:15 +01:00
Tobie Morgan Hitchcock
5182359813
Improve doc comments on error variants
2022-05-04 12:41:34 +01:00
Tobie Morgan Hitchcock
896e384b98
Change method name so it doesn’t conflict with std::ops::Add::add
2022-05-04 11:34:17 +01:00
Tobie Morgan Hitchcock
f33031ca6b
Ensure doc tests compile successfully
2022-05-04 10:11:51 +01:00
Tobie Morgan Hitchcock
c5960a028e
Improve comments in public library package
2022-05-04 00:49:38 +01:00
Tobie Morgan Hitchcock
65d0e3138a
Ensure all necessary SQL types are publicly exported
2022-05-04 00:13:37 +01:00
Tobie Morgan Hitchcock
ffc3ed82f7
Simplify external API when working with Datastore
2022-05-04 00:07:46 +01:00
Tobie Morgan Hitchcock
6a8c53b51e
Don’t use custom type definition for query responses
2022-05-03 17:47:47 +01:00
Tobie Morgan Hitchcock
01ab9375a3
Remove duplicate SQL string::substr() function
2022-05-02 23:22:22 +01:00
Tobie Morgan Hitchcock
0cbcb3b374
Simplify database query response object
2022-05-02 00:35:01 +01:00
Tobie Morgan Hitchcock
a4e07f693b
Make certain functions private to crate
2022-05-01 23:25:53 +01:00
Tobie Morgan Hitchcock
1697beda9c
No need to store the actual error on the executor
2022-05-01 10:35:26 +01:00
Tobie Morgan Hitchcock
d5fab4fbf0
Remove string::contains() SQL function
2022-04-30 21:47:19 +01:00
Tobie Morgan Hitchcock
355f1aac7b
Don’t override context unnecessarily
2022-04-29 21:43:44 +01:00
Tobie Morgan Hitchcock
6f93c38cd2
Add SQL OUTSIDE operator for geometry types
2022-04-29 21:41:57 +01:00
Tobie Morgan Hitchcock
fb27185435
Remove unused import
2022-04-29 21:40:02 +01:00
Tobie Morgan Hitchcock
f5be6a3227
Remove unused time functions
2022-04-28 23:31:51 +01:00
Tobie Morgan Hitchcock
4c8d9dbb63
implement COLLATE and NUMERIC ordering in ORDER BY clauses
2022-04-27 16:21:51 +01:00
Tobie Morgan Hitchcock
4bc3b299aa
Implement RAND() ordering in ORDER BY clauses
2022-04-27 02:30:26 +01:00
Tobie Morgan Hitchcock
e6fe7e675b
Fix BEGIN / CANCEL / COMMIT full statements
2022-04-27 02:29:32 +01:00
Tobie Morgan Hitchcock
4275f93c57
Ensure random times are generated correctly
2022-04-24 12:03:17 +01:00
Tobie Morgan Hitchcock
8e283ecaeb
Only check fields if the document is a table record
2022-04-13 18:31:28 +01:00
Tobie Morgan Hitchcock
cbdba0a117
Implement INDEX clauses
2022-04-09 13:33:39 +01:00
Tobie Morgan Hitchcock
f958eea305
Fix typo in ixdb key-value store implementation
2022-04-09 10:08:51 +01:00
Tobie Morgan Hitchcock
a41e52098b
Improve performance of internal value conversion
2022-04-07 15:44:55 +01:00
Tobie Morgan Hitchcock
27a01bec08
Improve performance of embedded field path creation
2022-04-07 15:33:57 +01:00
Tobie Morgan Hitchcock
c4386f1549
Process PERMISSIONS clauses on document fields
2022-04-07 11:21:18 +01:00
Tobie Morgan Hitchcock
6b6d4f65f9
Process document fields correctly
2022-04-07 11:21:18 +01:00
Tobie Morgan Hitchcock
e378105f11
Add ‘every’ function on a value for field iteration
2022-04-07 11:21:18 +01:00
Tobie Morgan Hitchcock
9becf187f4
Add ‘each’ function on a value for field iteration
2022-04-07 11:12:10 +01:00
Tobie Morgan Hitchcock
285b83244c
Remove PRIORITY clause from DEFINE FIELD statement
2022-04-07 08:38:47 +01:00
Tobie Morgan Hitchcock
2a0c8ddb4a
Move duplicate code into dedicated functions
2022-04-07 08:35:39 +01:00
Tobie Morgan Hitchcock
f6b47d381b
Ensure WHERE conditions are computed correctly
2022-04-06 20:28:16 +01:00
Tobie Morgan Hitchcock
2b89702490
Improve code comments
2022-04-06 20:15:56 +01:00
Tobie Morgan Hitchcock
2e2756d9e8
Implement INFO sql statements
2022-04-06 12:06:33 +01:00
Tobie Morgan Hitchcock
cf20cd4396
Treat $this param as a special case
2022-04-06 00:11:33 +01:00
Tobie Morgan Hitchcock
892fc99527
Implement EVENT clauses
2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
5df1040dd8
Implement PERMISSIONS clauses
2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
200741a35e
Simplify &self in function definitions
2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
c1a128e7ab
No need to clone key when fetching value on context
2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
aab4d0b096
Implement FIELD TYPE / VALUE / ASSERT clauses
2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
8980929a3c
Ignore any errors when adding default NS / DB / TB
2022-04-04 23:24:39 +01:00
Tobie Morgan Hitchcock
64eedd413f
Use consistent coding style
2022-04-04 23:23:31 +01:00
Tobie Morgan Hitchcock
b85e983ce7
Improve database TYPE clause definitions
2022-04-04 22:43:10 +01:00
Tobie Morgan Hitchcock
876a1e581e
Simplify permissions definition and types
2022-04-04 22:37:16 +01:00
Tobie Morgan Hitchcock
664260ef0d
Enable internal conversion between values
2022-04-04 22:34:46 +01:00
Tobie Morgan Hitchcock
2b7a23c569
Make DEFINE TABLE and DEFINE FIELD permissions FULL by default
2022-04-04 20:05:50 +01:00
Tobie Morgan Hitchcock
1d66a4772d
Ensure correct ordering of values in datastore
2022-04-04 16:59:42 +01:00
Tobie Morgan Hitchcock
fd4752aff4
Add putc + delc functions for conditional put / del in kv store
2022-04-04 16:59:20 +01:00
Tobie Morgan Hitchcock
0df347732d
Finish implementation of record storing / purging
2022-04-02 13:25:42 +01:00
Tobie Morgan Hitchcock
099e1d17ff
Add common methods on document type
2022-04-02 13:23:45 +01:00
Tobie Morgan Hitchcock
b02ee12aaa
Make code more legible
2022-04-02 13:22:53 +01:00
Tobie Morgan Hitchcock
94ffc054a7
Fix clippy warnings
2022-04-01 23:28:54 +01:00
Tobie Morgan Hitchcock
d6aadfecac
Fix bug with datastore key bytes
2022-04-01 23:23:54 +01:00