Commit graph

67 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
400ed09ecb Ensure PERMISSIONS clauses are not run for ROOT / NS / DB users 2022-10-16 22:22:13 +01:00
Tobie Morgan Hitchcock
e13a4c7742 Use complex Record IDs for IDs in foreign tables with GROUP BY clauses 2022-10-04 00:27:38 +01:00
Tobie Morgan Hitchcock
bec3d49b6d Allow deep merging in UPDATE ... MERGE statements
Closes #1225
2022-09-29 11:16:57 +01:00
Finn Bear
b31dbb28fe
Miscellaneous performance optimizations and code cleanup (#240) 2022-09-23 00:54:53 +01:00
Stephen Gilboy
63d8034a60
Return permissions error when automatically creating a table without authorization (#178)
Closes #177
2022-09-17 03:05:02 +01:00
Tobie Morgan Hitchcock
fde0c55d34 Improve error logging for field and index errors
Closes #113
2022-09-10 05:59:08 +01:00
Tobie Morgan Hitchcock
c97fd62d70 Don’t cast NONE or NULL values to a fields data type
Closes #73
2022-09-01 01:34:31 +01:00
Tobie Morgan Hitchcock
308004aacf Improve unique index duplicate value error messages
Closes #75
2022-08-31 20:00:22 +01:00
Tobie Morgan Hitchcock
56d3b0e861 Fix bug where records couldn’t be updated after defining an index
Closes #57
2022-08-25 14:50:11 +01:00
Tobie Morgan Hitchcock
bac8aa31a3 Implement config definition caching within a transaction
Closes #21
2022-08-08 20:44:35 +01:00
Tobie Morgan Hitchcock
c8cba2c64d Remove VOID type 2022-07-28 21:54:59 +01:00
Tobie Morgan Hitchcock
078d3d4868 Ensure field values are set even if the field is not specified 2022-07-28 09:42:04 +01:00
Tobie Morgan Hitchcock
d619633340 Enable new database strict mode configuration 2022-07-27 18:20:04 +01:00
Tobie Morgan Hitchcock
31adc4538d Implement DEFINE TABLE AS foreign table statements 2022-07-16 23:24:04 +01:00
Tobie Morgan Hitchcock
0394fe5b90 Ensure temporary metadata is removed from records when output 2022-07-16 23:22:23 +01:00
Tobie Morgan Hitchcock
8dbbcf1885 Improve code comments 2022-07-16 23:21:45 +01:00
Tobie Morgan Hitchcock
c9a5b66d9c Ensure aggregate functions are computed in GROUP BY clauses 2022-07-16 23:20:50 +01:00
Tobie Morgan Hitchcock
db7ed18119 Consolidate field expression code into single location 2022-07-10 23:11:28 +01:00
Tobie Morgan Hitchcock
4ab552a8e3 Allow PATCH clauses to accept parameters 2022-07-07 11:22:41 +01:00
Tobie Morgan Hitchcock
6c5ddbf70f Ensure undefined fields are removed in schemafull mode 2022-07-04 17:54:43 +01:00
Tobie Morgan Hitchcock
b575f3a9db Remove unused files 2022-07-04 17:54:03 +01:00
Tobie Morgan Hitchcock
8ebcff6d18 Ensure table is added if it does not exist
If the user is is creating a record in a table / collection that does not exist, and the user is authenticated with KV, NS, or DB level permissions, then we need to add the table with the default definition parameters.
2022-07-04 13:58:59 +01:00
Tobie Morgan Hitchcock
34ba79428c Ensure correct permissions are used on each query 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
20c4e03446 Ensure graph edges are purged correctly when deleted 2022-06-17 23:55:09 +01:00
Tobie Morgan Hitchcock
1f5acefa7c Only store empty value in datastore for record edges 2022-06-15 08:50:59 +01:00
Tobie Morgan Hitchcock
072b002593 Simplify datastore key serialization 2022-06-15 08:49:57 +01:00
Tobie Morgan Hitchcock
1333ecf0df Use separate module for Dir type 2022-06-08 19:16:06 +01:00
Tobie Morgan Hitchcock
8b4f300120 Add support for multi-yield graph traversal expressions 2022-06-04 09:55:05 +01:00
Tobie Morgan Hitchcock
a9bf09db1e Ensure edges are stored before indexes in RELATE statements 2022-06-02 09:07:28 +01:00
Tobie Morgan Hitchcock
01d21e1157 Implement INSERT and RELATE statements 2022-05-30 16:32:26 +01:00
Tobie Morgan Hitchcock
32525602e2 Ensure changed index values are calculated correctly 2022-05-23 13:24:38 +01:00
Tobie Morgan Hitchcock
61b1e547b6 Always use simplified serialization unless specified explicitly 2022-05-21 10:07:32 +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
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
1e2ba72e37 Reduce mem size of Error enum types 2022-05-06 23:09:08 +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
143da56728 Implement SQL Array as a newtype tuple struct 2022-05-04 23:37:57 +01:00
Tobie Morgan Hitchcock
a4e07f693b Make certain functions private to crate 2022-05-01 23:25:53 +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
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
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
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
aab4d0b096 Implement FIELD TYPE / VALUE / ASSERT clauses 2022-04-06 00:09:23 +01:00