Rushmore Mushambi
690dd55a86
Extract core lib into a standalone crate ( #3423 )
...
Co-authored-by: Gerard Guillemas Martos <gerard.guillemas@surrealdb.com>
2024-02-02 22:10:47 +00:00
Nathaniel Brough
5d176d4c77
fuzz: Add structured executor ( #3285 )
2024-01-09 15:34:52 +00:00
Mees Delzenne
256a08a396
Factor out the parser into its own module. ( #2979 )
2023-11-18 13:56:13 +00:00
Mees Delzenne
b02567d233
Improved error messages ( #2566 )
2023-09-08 11:28:36 +00:00
Tobie Morgan Hitchcock
e316498e96
Add ONLY
keyword for single result outputs ( #2624 )
2023-09-05 16:22:13 +01:00
Finn Bear
e9821ee09e
Experimental Bugfix - consolidate execution depth limit. ( #2616 )
2023-09-04 23:51:33 +01:00
Finn Bear
65ceb61f6a
Bugfix - Prevent niche parser recursion due to subqueries. ( #2614 )
2023-09-04 19:52:32 +01:00
Mees Delzenne
daf6743c4e
Miscellaneous parser improvements ( #2515 )
2023-08-29 11:50:00 +01:00
Johnny Hauser
5945146459
Include define and remove statements in subquery #2459 ( #2496 )
2023-08-23 17:05:50 +01:00
Tobie Morgan Hitchcock
b2b51b54b1
Add versioned data storage serialisation ( #2433 )
2023-08-17 19:03:46 +01:00
Emmanuel Keller
e9eeb9aca7
QueryPlanner / indexing / Context / Cursor doc ( #2229 )
2023-07-06 14:57:42 +00:00
Emmanuel Keller
668d3fd8fb
Introduce query planner and indexing ( #1899 )
2023-06-19 19:41:13 +01:00
Emmanuel Keller
848be4dafb
Implements analyzer definition ( #1705 )
2023-05-09 22:08:09 -04:00
Tobie Morgan Hitchcock
19b0920e15
Ensure Idiom
paths result in writeable transactions where necessary ( #1957 )
2023-05-09 18:17:29 -04:00
Tobie Morgan Hitchcock
f0e5753cd1
Use static str where possible for context param names ( #1942 )
2023-05-06 21:49:34 +01:00
Rushmore Mushambi
1e8903b699
Derive Serialize
implementations for enums ( #1887 )
2023-04-29 21:50:25 +01:00
Rushmore Mushambi
91e949248d
Unify serialisation ( #1881 )
2023-04-29 16:58:22 +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
185eb91f22
Allow raw SQL subqueries without surrounding brackets
...
Related to #247
Related to #225
Related to #1319
2023-02-20 14:24:37 +00:00
Tobie Morgan Hitchcock
275cf18a3a
Enable RETURN
statements in subqueries
...
Related to #1319
2023-02-19 19:47:34 +00:00
Tobie Morgan Hitchcock
f7dd73212d
Make SQL subquery behaviour understandable and consistent
...
Closes #1408
Closes #1441
2023-02-19 17:34:18 +00:00
Tobie Morgan Hitchcock
84b026679f
Update clippy linting tests
2023-02-03 11:47:07 +00:00
Allen Lantz
d1055e6088
Implement hashed implementation of Uniq<Array>
( #1310 )
2022-10-27 05:23:24 -07:00
Tobie Morgan Hitchcock
0a4b810fbd
Allow parameters in LIMIT and START clauses in SQL SELECT statements
...
Closes #1332
Closes #116
2022-10-17 02:57:53 +01:00
Finn Bear
88100854a8
Limit computation depth in functions, futures, and subqueries. ( #241 )
2022-10-06 17:35:03 +01:00
Finn Bear
45e1a9adce
Refactor, optimization, cleanup ( #1288 )
2022-10-04 22:51:18 +01:00
Tobie Morgan Hitchcock
13bedf6ce1
Allow using subquery Record IDs embedded within other records
2022-09-25 10:56:57 +01:00
Tobie Morgan Hitchcock
37a3efc81b
Allow for spacing around subquery statements
2022-06-15 08:49:57 +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
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
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
64eedd413f
Use consistent coding style
2022-04-04 23:23:31 +01:00
Tobie Morgan Hitchcock
9f7527c01a
Make simple value fetching functions synchronous
2022-03-25 21:15:55 +00:00
Tobie Morgan Hitchcock
f674ea0544
Implement ORDER BY clauses
2022-03-23 14:02:41 +00:00
Tobie Morgan Hitchcock
5d554d07d3
Use char instead of str for parsing where possible
2022-03-16 23:53:31 +00:00
Tobie Morgan Hitchcock
d1c2daaee4
Apply cargo clippy lint recommendations
2022-03-05 14:42:58 +00:00
Tobie Morgan Hitchcock
38c7ae206e
Enable parallel iteration of records
2022-02-27 00:01:19 +00:00
Tobie Morgan Hitchcock
d5c53b7791
Extract core surrealdb code into separate library
2022-02-22 14:16:50 +00:00