Commit graph

42 commits

Author SHA1 Message Date
Mees Delzenne
b02567d233
Improved error messages (#2566) 2023-09-08 11:28:36 +00:00
Tobie Morgan Hitchcock
e9ee5245c2 Code cleanup (#2569) 2023-09-01 15:36:54 +01:00
Mees Delzenne
daf6743c4e
Miscellaneous parser improvements (#2515) 2023-08-29 11:50:00 +01:00
Tobie Morgan Hitchcock
5565c8f355
Add support for OMIT clause in SELECT statements (#2529) 2023-08-27 19:00:11 +01:00
Mees Delzenne
76b962eb6e
Lower parsing complexity for binary values and idioms (#2475) 2023-08-21 11:33:57 +01:00
Tobie Morgan Hitchcock
b2b51b54b1
Add versioned data storage serialisation (#2433) 2023-08-17 19:03:46 +01:00
Emmanuel Keller
b485d9cc3d
Feat: Support of (un)flattened fields in indexing (#2327) 2023-08-01 07:30:13 +00:00
Tobie Morgan Hitchcock
a12348db8e
Path processing improvements (#2250) 2023-07-15 07:08:26 +00: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
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
531e75a5b0
Ensure chained future values have access to current document context (#1939) 2023-05-06 07:29:42 +01:00
Rushmore Mushambi
91e949248d
Unify serialisation (#1881) 2023-04-29 16:58:22 +01:00
Tobie Morgan Hitchcock
8bf5585080 Simplify parser and improve performance 2023-04-17 13:09:56 +01:00
Tobie Morgan Hitchcock
50c3554242 Ensure edge record deletes do not cascade to related records
Closes #1817
2023-04-16 18:17:50 +01:00
Tobie Morgan Hitchcock
0a328d4f0a Add initial support for additional functionality in graph expressions
Related to #1658
2023-03-31 20:00:21 +01:00
Tobie Morgan Hitchcock
2e0093c41d Improve SQL Idiom path parsing
Closes #1653
2023-03-31 20:00:21 +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
84b026679f Update clippy linting tests 2023-02-03 11:47:07 +00:00
Finn Bear
a1b9201bbd
Add pretty printing for SQL Query, Statement, Value, Array, and Object types (#1420) 2023-01-19 09:53:33 +00:00
Tobie Morgan Hitchcock
f5b21eb363 Add support for FLEXIBLE fields on SCHEMAFULL tables
Closes #1341
2023-01-04 09:50:01 +00:00
Tobie Morgan Hitchcock
a9de682370 Ensure parameters can be used in RELATE statements without spaces
Closes #1447
2022-12-04 22:07:43 +00:00
CelebrateVC
f0745386cf
Improve code comments for documentation (#1476) 2022-11-23 09:42:59 +00:00
Allen Lantz
d1055e6088
Implement hashed implementation of Uniq<Array> (#1310) 2022-10-27 05:23:24 -07:00
Finn Bear
45e1a9adce
Refactor, optimization, cleanup (#1288) 2022-10-04 22:51:18 +01:00
Tobie Morgan Hitchcock
31adc4538d Implement DEFINE TABLE AS foreign table statements 2022-07-16 23:24:04 +01:00
Tobie Morgan Hitchcock
8dbbcf1885 Improve code comments 2022-07-16 23:21:45 +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
c0a78d8470 Implement graph traversal functionality 2022-06-15 08:49:57 +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
4d9b3fd403 Ensure fields are not escaped when inserted as object keys 2022-05-31 20:47:02 +01:00
Tobie Morgan Hitchcock
56f5f10046 Remove unnecessary std::convert::From implementations 2022-05-27 21:13:04 +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
89f731c903 Implement SQL Idiom as a newtype tuple struct 2022-05-05 12:26:46 +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
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
a4e07f693b Make certain functions private to crate 2022-05-01 23:25:53 +01:00
Tobie Morgan Hitchcock
cbdba0a117 Implement INDEX clauses 2022-04-09 13:33:39 +01:00
Tobie Morgan Hitchcock
27a01bec08 Improve performance of embedded field path creation 2022-04-07 15:33:57 +01:00
Tobie Morgan Hitchcock
3370b20c38 Only allow simple fields for SPLIT, ORDER, and GROUP clauses 2022-03-23 14:02:03 +00:00
Tobie Morgan Hitchcock
d4566ff6ea Improve performance with query path analysis
Instead of creating a new Vec<_> for every embedded path part, we now use a reference when calling get/set/del on a value’s data. This means we aren’t creating and copying the Vec items each and every time we traverse down a path.
2022-02-22 19:05:58 +00:00
Tobie Morgan Hitchcock
d5c53b7791 Extract core surrealdb code into separate library 2022-02-22 14:16:50 +00:00
Renamed from src/sql/idiom.rs (Browse further)