Commit graph

296 commits

Author SHA1 Message Date
Emmanuel Keller
0772a8c592
Feature: Vector Search: mtree index + knn operator (#2546)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-09-12 21:26:03 +01:00
Yusuke Kuoka
c51912ab81
Record table (re)definitions into change feeds (#2671)
Co-authored-by: Yusuke Kuoka <yusuke.kuoka@surrealdb.com>
2023-09-12 16:55:07 +01:00
Emmanuel Keller
e4c6d817c4
Feature: Support of range queries in the query planner (#2656) 2023-09-12 16:43:32 +01:00
Yusuke Kuoka
3ab03b00a8
Fix change feeds enabled at the database-level (#2688)
Co-authored-by: Yusuke Kuoka <yusuke.kuoka@surrealdb.com>
2023-09-12 14:57:27 +00:00
Rushmore Mushambi
3c48558ca2
Fix decimal deserialisation (#2687) 2023-09-12 15:34:58 +01:00
Yusuke Kuoka
5446666e7d
Fix panic on commit when defining db and tb in strict mode (#2684)
Co-authored-by: Yusuke Kuoka <yusuke.kuoka@surrealdb.com>
Co-authored-by: Mees Delzenne <mees.delzenne@gmail.com>
2023-09-12 15:33:24 +01:00
Micha de Vries
5bfe598a96
Process scripting functions before "type::*" functions (#2681)
Co-authored-by: Mees Delzenne <mees.delzenne@gmail.com>
2023-09-12 11:14:09 +01:00
Tobie Morgan Hitchcock
28368d83c9
Add live queries to INFO FOR TB statement (#2673) 2023-09-11 20:35:32 +01:00
Tobie Morgan Hitchcock
592a1b7c7e
Add $before and $after params to RETURN clauses (#2665) 2023-09-10 19:22:41 +01:00
Tobie Morgan Hitchcock
c3acab4614
Support FOR statements inside code blocks (#2664) 2023-09-10 12:30:30 +01:00
Mees Delzenne
b02567d233
Improved error messages (#2566) 2023-09-08 11:28:36 +00:00
Emmanuel Keller
fe78ca3c32
Feature: Add fallback reason to the explanation (#2647) 2023-09-07 23:36:39 +00:00
Tobie Morgan Hitchcock
e316498e96
Add ONLY keyword for single result outputs (#2624) 2023-09-05 16:22:13 +01:00
Tobie Morgan Hitchcock
e008745a54
Allow any value to be used for error type in THROW statement (#2618) 2023-09-05 16:21:34 +01:00
Tobie Morgan Hitchcock
abb5ce00db
Ensure incorrect data causes error (#2559) 2023-09-04 18:54:17 +01:00
Micha de Vries
22c36b80c8
move is::* -> string::is::*, add new type::is::* fncs (#2603) 2023-09-04 16:10:18 +00:00
Mees Delzenne
48a2bb52ac
Provide existing context to functions called from scripting functions (#2605) 2023-09-04 12:12:24 +00:00
Tobie Morgan Hitchcock
fc7f5cb0b0
Support variable field projection with type::field() and type::fields() (#2552) 2023-08-31 13:06:10 +01:00
Salvador Girones Gil
bdac1fae72
[security] Introduce "allow-guests". Deny all caps by default (#2547) 2023-08-30 18:01:30 +00:00
Emmanuel Keller
0d43e7a156
Implements revision on indexes states (#2516) 2023-08-29 20:21:55 +01:00
Mees Delzenne
daf6743c4e
Miscellaneous parser improvements (#2515) 2023-08-29 11:50:00 +01:00
Tobie Morgan Hitchcock
8be97a697f
Support ON DUPLICATE KEY UPDATE when a unique index entry exists (#2534) 2023-08-29 09:46:48 +01:00
Rushmore Mushambi
6cb12db82b
Make patch return the patched record (#2530) 2023-08-27 19:28:38 +01:00
Tobie Morgan Hitchcock
5565c8f355
Add support for OMIT clause in SELECT statements (#2529) 2023-08-27 19:00:11 +01:00
Tobie Morgan Hitchcock
a31d25d3c5
Support arbitrary number of arrays in array::concat() (#2526) 2023-08-27 11:40:49 +01:00
Tobie Morgan Hitchcock
e491789e20
Add null as a specific field type (#2524) 2023-08-27 11:22:27 +01:00
Tobie Morgan Hitchcock
2e49aad26a
Enable parsing raw values at base of query (#2508) 2023-08-26 12:08:16 +01:00
Rushmore Mushambi
fd364e56da
Make tick a configuration option (#2495) 2023-08-25 07:55:22 +00:00
Rushmore Mushambi
6cfc270d32
Run rustfmt and clippy using Rust 1.72.0 (#2512) 2023-08-24 19:02:44 +00:00
Tobie Morgan Hitchcock
a6ec9dbd02
Ensure edge in and out fields are not overwritten (#2506) 2023-08-24 09:19:19 +01:00
Tobie Morgan Hitchcock
1a4e310e46
Improve output of THROW errors (#2505) 2023-08-23 23:30:13 +01:00
Tobie Morgan Hitchcock
b1275ed565
Ensure foreach range is computed before iterating over (#2492) 2023-08-22 17:45:22 +01:00
Tobie Morgan Hitchcock
ac35111833
Improve code blocks, foreach statements, and throw statements (#2490) 2023-08-22 12:26:05 +01:00
Rushmore Mushambi
9d89fa0d56
Simplify connect parameters (#2488) 2023-08-22 09:23:49 +00:00
Tobie Morgan Hitchcock
afdd0b3c85
Improve id field handling in the statement data clause (#2487) 2023-08-21 23:47:35 +01:00
Finn Bear
27cc21876d
Security - Limit parser depth. (#2369) 2023-08-21 22:05:11 +00:00
Tobie Morgan Hitchcock
f01da5f577
Delay Record ID generation when using functions (#2469) 2023-08-20 04:27:20 +01:00
Tobie Morgan Hitchcock
1fd6d991ae
Implement DEFAULT value clause on DEFINE FIELD statements (#2468) 2023-08-20 03:53:50 +01:00
Tobie Morgan Hitchcock
71adbe6f5a
Ensure foreign tables are deleted fully when removed (#2467) 2023-08-20 02:07:15 +01:00
Tobie Morgan Hitchcock
dcc3c4fabb
Ensure records can be created correctly when using INSERT statement (#2466) 2023-08-20 00:34:41 +01:00
Tobie Morgan Hitchcock
e9ef8855cf
Ensure permissions are enforced on edge in and out fields (#2465) 2023-08-19 23:19:16 +01:00
Tobie Morgan Hitchcock
136d8f8eee
Add tests for DEFINE FIELD ... VALUE clauses with references and with futures (#2464) 2023-08-19 20:22:15 +01:00
Przemyslaw Hugh Kaznowski
1dfc58a8da
Fix live queries to check predicates against previous document instead of current (#2452) 2023-08-19 13:31:51 +01:00
Tobie Morgan Hitchcock
44dabfa9d2
Improve DEFINE and REMOVE statements code (#2455) 2023-08-18 14:21:02 +01:00
Yusuke Kuoka
a242d21d94
feat: Ability to show changes using timestamp (#2408) 2023-08-18 08:17:54 +01:00
Tobie Morgan Hitchcock
b2b51b54b1
Add versioned data storage serialisation (#2433) 2023-08-17 19:03:46 +01:00
Przemyslaw Hugh Kaznowski
ef75fc2a66
Add test for delete with live query predicates (#2430) 2023-08-11 23:22:53 +00:00
Rushmore Mushambi
61f4580ba8
Switch to std::sync::OnceLock and fix Surreal::clone (#2370) 2023-08-10 06:33:38 +00:00
Aly
7221d8cae9
Fix setting id using arbitrary record IDs (#2367) 2023-08-01 18:47:08 +00:00
Emmanuel Keller
ecba885eb8
Feat: btree serialisation + generic read/write tree cache (#2362) 2023-08-01 09:57:05 +00:00
Emmanuel Keller
b485d9cc3d
Feat: Support of (un)flattened fields in indexing (#2327) 2023-08-01 07:30:13 +00:00
Mees Delzenne
c9078a116e
Add the value function for easy access to SurrealQL parameters and values. (#2355)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-29 21:16:48 +00:00
Salvador Girones Gil
998b263517
[iam] RBAC and multiple root users (#2176)
Co-authored-by: Przemyslaw Hugh Kaznowski <hughkaznowski@protonmail.com>
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-29 18:47:25 +00:00
Yusuke Kuoka
860796ba86
Add Change Feeds GC (#2339) 2023-07-29 08:51:30 +00:00
Mees Delzenne
278e27db87
Implement support for running queries in script functions. (#2331) 2023-07-26 07:54:07 +00:00
Yusuke Kuoka
d36ece79de
feat: Change Feeds Enabling/Writing/Reading (#2306) 2023-07-24 16:15:20 +00:00
hchockarprasad
432a6cc5b8
Add time::min & time::max function (#2320) 2023-07-23 08:19:28 +00:00
Emmanuel Keller
0b56d5c6c6
feat: WITH clause on SELECT statement (#2304) 2023-07-21 18:41:36 +00:00
Emmanuel Keller
b66e537f98
Unique index should ignore none or null values (#2313) 2023-07-21 18:40:59 +00:00
Emmanuel Keller
063f4e6665
feat: implements Multi-index execution plan (#2280) 2023-07-20 12:56:32 +00:00
Mees Delzenne
cacd9a1de9
Add tests for http functions (#2286) 2023-07-20 12:46:11 +00:00
hchockarprasad
88bcc87d39
Add array::at function (#2294) 2023-07-20 08:27:04 +00:00
hchockarprasad
eef9b755cb
Add first, last functions to array (#2285) 2023-07-19 14:23:07 +00:00
Tobie Morgan Hitchcock
87dee375a8
Fix model range increments (#2281) 2023-07-19 14:00:06 +00:00
Przemyslaw Hugh Kaznowski
769ed5ab85
Sur 253 Change Cl->Nd, rework key/mod (#2257)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-18 18:32:38 +00:00
Emmanuel Keller
98a482e471
Implements additional function for vectors (#2266) 2023-07-16 13:04:22 +00:00
hchockarprasad
a2ef2d83df
Make what parser to parse idioms as well (#2243) 2023-07-15 16:26:36 +00:00
Tobie Morgan Hitchcock
a12348db8e
Path processing improvements (#2250) 2023-07-15 07:08:26 +00:00
Eduardo Pereira de Sousa
b3a1b39236
Feature: Add additional functions for comparing strings for similarity. (#1904)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-14 20:37:52 +00:00
Tim
b83cd86f9d
Feature: 1903 Basic Vector Functions (#1907)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
Co-authored-by: Emmanuel Keller <emmanuel.keller@surrealdb.com>
2023-07-14 18:00:07 +00:00
Emmanuel Keller
1e30eb4aa1
feat: Implements SELECT/EXPLAIN FULL (#2258) 2023-07-14 12:22:37 +00:00
Emmanuel Keller
ee3a1c211f
Select/Explain should only return the explanation (#2256) 2023-07-13 10:12:34 +00:00
Finn Bear
ce9430d1ac
Bugfix #2175 - Allow escape characters in scripts (#2253) 2023-07-13 08:06:12 +00:00
Emmanuel Keller
75fc006c21
Ensure index resources are properly deleted on index deletion (#2234) 2023-07-10 08:24:47 +00:00
hchockarprasad
bb61ee7ff9
Add thing as scalar node for indexing (#2239)
Co-authored-by: Emmanuel Keller <emmanuel.keller@surrealdb.com>
2023-07-10 08:19:37 +00:00
JustAnotherCodemonkey
a10b9cbb75
Feature for #2065: Add array functions to reduce JS slowdown. (#2156)
Co-authored-by: Mees Delzenne <DelSkayn@users.noreply.github.com>
2023-07-10 08:15:18 +00:00
Tobie Morgan Hitchcock
cf4c8c5f5d
Increase stack size for complex parser tests (#2242) 2023-07-10 06:24:18 +00:00
Tobie Morgan Hitchcock
b33223562a
Add two failing index tests (#2125) 2023-07-06 16:46:49 +00:00
Emmanuel Keller
e9eeb9aca7
QueryPlanner / indexing / Context / Cursor doc (#2229) 2023-07-06 14:57:42 +00:00
Tobie Morgan Hitchcock
4b690c763b
Improve datastore configuration options (#2227) 2023-07-05 21:26:13 +00:00
Emmanuel Keller
67687496c6
Fix context cancellation issue (#2212) 2023-07-05 13:30:44 +00:00
Tobie Morgan Hitchcock
31ccb0c904
Enable inner field access on sql::Geometry types (#2203) 2023-07-01 21:04:24 +00:00
Tobie Morgan Hitchcock
55918b7c0e
Switch to bincode serialization (#2134)
Co-authored-by: Rushmore Mushambi <rushmore@surrealdb.com>
2023-07-01 20:09:15 +01:00
Emmanuel Keller
1b73d3e4e4
feat: the query planner should support params (#2200) 2023-06-30 16:51:03 +00:00
Rushmore Mushambi
699880f155
Print tracing logs for cargo test when RUST_LOG is set (#2198) 2023-06-30 11:43:19 +00:00
Emmanuel Keller
1c6ada0f69
BM25 without parameters (#2197) 2023-06-30 11:35:02 +00:00
Emmanuel Keller
73a4e54ad5
Bugfix - matches operator returns results on non-matching terms (#2185) 2023-06-26 18:23:05 +00:00
Emmanuel Keller
6d5dcfadd9
Feature - Full-text search scoring function (#2158) 2023-06-23 21:26:19 +01:00
Emmanuel Keller
f688eb4ef5
Fixes highlighting bug (out or range for slice length...) (#2169) 2023-06-23 11:58:51 +00:00
Emmanuel Keller
8e64750a60
Feature - Search highlighting (#2132) 2023-06-21 19:31:15 +01:00
Finn Bear
41e119a5f5
Feature - unary operators (#2139) 2023-06-21 00:31:23 +01:00
Nrishinghananda Roy
5485883d3c
Fix multiple Clippy Lints (#2159) 2023-06-20 12:48:20 +01:00
Tobie Morgan Hitchcock
a1b1fead7b
Ensure formatting and linting are properly checked (#2154) 2023-06-19 22:35:19 +00:00
Emmanuel Keller
668d3fd8fb
Introduce query planner and indexing (#1899) 2023-06-19 19:41:13 +01:00
Rushmore Mushambi
6f79f1556a
Test FoundationDB (#1889) 2023-06-13 20:55:38 +00:00
Gustavo
e42c8fdb1a
fix: Value equal implementation in the Bool match case (#2129)
Co-authored-by: tavindev <tavindev>
2023-06-13 18:00:16 +00:00
Finn Bear
c45fd12509
Feature - Use rust_decimal (128b) instead of bigdecimal ("arbitrary" precision) (#1991) 2023-06-09 15:23:30 +00:00
Rushmore Mushambi
409ad61477
Add authentication support for local engines (#1908) 2023-06-09 13:45:07 +00:00
Tobie Morgan Hitchcock
f5f10d508f
Improve type casting support (#2083)
Co-authored-by: Finn Bear <finnbearlabs@gmail.com>
2023-06-06 06:12:59 +00:00
Tobie Morgan Hitchcock
3900bfa737
Add SpeeDB storage engine implementation (#2076) 2023-05-31 12:35:41 +00:00
Marta Sanchez
496d16242f
Change data returned by the INFO statement (#2078)
Co-authored-by: Marta <marta@Salvadors-Laptop.local>
2023-05-31 12:35:29 +00:00
Emmanuel Keller
8e48604e20
Add initial full-text search indexer implementation (#1779) 2023-05-29 12:46:41 +01:00
Rushmore Mushambi
9cd25566ac
Fix deserialising HTTP query responses (#2045) 2023-05-26 11:36:37 +01:00
Finn Bear
a81d427c02
Refactor - Use floats for math and cvt'ing from JS numbers, integer division truncates (#2032) 2023-05-23 07:10:09 +01:00
Finn Bear
db345a2ce7
Bugfix - time::ceil function edge case. (#1976) 2023-05-12 13:59:58 -04:00
Finn Bear
01b280623c
Feature #1973 - Add time::ceil function. (#1975) 2023-05-11 14:46:36 -04: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
Finn Bear
ccc16fa9a7
Feature - Expand support for Bytes (#1898) 2023-05-09 16:43:16 -04:00
Finn Bear
3d76645908
Bugfix #1946 - allow 4X deeper computation by default, make limit configurable (#1950) 2023-05-09 07:37:07 +01:00
Tobie Morgan Hitchcock
bfbadc6fdd
Ensure user $input is accessible with all Data pattern types (#1945) 2023-05-07 13:33:32 +01:00
Rushmore Mushambi
107e5b5dba
Support switching namespaces and databases separately (#1927) 2023-05-05 19:12:19 +01:00
Jan Tebernum
e9ebecfdd6
Feature: Implementation of array::join (#1920) 2023-05-04 21:38:02 +01:00
Jan Tebernum
1cd00cf3fc
Feature: Add function string::contains (#1906) 2023-05-03 11:40:17 +01:00
Tobie Morgan Hitchcock
453d368e69
Add integration tests for the built-in SQL functions (#1893) 2023-04-30 19:34:26 +01:00
Rushmore Mushambi
91e949248d
Unify serialisation (#1881) 2023-04-29 16:58:22 +01:00
Rushmore Mushambi
141eb091a6
Bypass deserialisation for sql::Value responses on Surreal methods (#1875) 2023-04-28 12:20:57 +01:00
Tobie Morgan Hitchcock
66b105dac0
Add support for stricter typings (#1861)
Co-authored-by: Rushmore Mushambi <rushmore@surrealdb.com>
2023-04-25 11:13:04 +01:00
Tobie Morgan Hitchcock
ee24f8d6a0 Ensure array::remove() function works correctly
Closes #1831
2023-04-20 19:23:13 +01:00
Rushmore Mushambi
8eac52315b
Fix HTTP string errors deserialization (#1821) 2023-04-19 09:46:37 +01:00
Finn Bear
28bd007f72
Limit the number of concurrent futures run when fetching remote records (#1824) 2023-04-18 22:32:29 +01:00
Finn Bear
c9a9336fdc
Improve performance and security of simple JSON parser (#1813) 2023-04-17 15:39:37 +01:00
Rushmore Mushambi
ed20048358
Improve GitHub Actions CI run time (#1569) 2023-04-17 14:27:32 +01:00
Rushmore Mushambi
179878d672
Add compile-time guarantees to make Surreal::delete safer (#1753) 2023-03-31 23:49:29 +01:00
Tobie Morgan Hitchcock
78329abf97 Enable access to input data using $input variable
Closes #1543
2023-03-31 20:00:21 +01:00
Rushmore Mushambi
4a86af1d1f
Re-activate integration tests for the HTTP engine (#1749) 2023-03-31 13:38:09 +01:00
Tobie Morgan Hitchcock
cd5d452e5b Ensure internal edge record fields can not be modified
Closes #1726
2023-03-30 19:30:49 +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
Rushmore Mushambi
8a451ac61a
Temporarily disable integration tests for the HTTP engine, take 2 (#1744) 2023-03-29 19:14:40 +01:00
Rushmore Mushambi
108f080280
Temporarily disable integration tests for the HTTP engine (#1741) 2023-03-29 16:41:44 +01:00
Tobie Morgan Hitchcock
1293d23e59 Add test for multi-aggregate composed grouped maths queries
Closes #1689
2023-03-26 22:35:28 +01:00
Tobie Morgan Hitchcock
cad596cdf3 Ensure GROUP BY clauses with multi same-aggregate functions work correctly
Closes #1731
2023-03-26 10:04:18 +01:00
Tobie Morgan Hitchcock
1102a2c6da Add operator for unique array add
Related to #1690
2023-03-25 23:17:33 +00:00
Tobie Morgan Hitchcock
4dba9fc675 Don’t treat arrays as sets
Closes #1690
2023-03-25 22:38:09 +00:00
Tobie Morgan Hitchcock
cdac4f84cd Add support for custom SQL functions
Closes #247
2023-03-25 19:44:03 +00:00
Tobie Morgan Hitchcock
f48de42695 Add suport for flattened query results with VALUE field clauses
Closes #1326
2023-03-17 07:32:31 -04:00
Tobie Morgan Hitchcock
223d119b2c Allow SQL subqueries to be ended witrh ; character
Related to #247
Related to #225
Related to #1319
2023-02-20 20:40:05 +00: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
f7dd73212d Make SQL subquery behaviour understandable and consistent
Closes #1408
Closes #1441
2023-02-19 17:34:18 +00:00
Tobie Morgan Hitchcock
d2571a6b29 Ensure UUIDs convert to strings correctly
Closes #1650
2023-02-11 18:21:02 +00:00
Tobie Morgan Hitchcock
55dda013b6 Fix SQL function tests 2023-01-18 00:11:19 +00:00
Tobie Morgan Hitchcock
3a1294029e Add SQL array::all(), array::any(), array::min(), and array::max() functions
Closes #1588
2023-01-17 09:00:30 +00:00
Tobie Morgan Hitchcock
7fabf54593 Add ability to define global parameters on database
Closes #133
2023-01-09 15:49:47 +00:00
Tobie Morgan Hitchcock
23be3353be Check expressions for SPLIT ON, GROUP BY, and ORDER BY clauses
Closes #1229
Closes #1230
Closes #1457
Closes #1233
2023-01-08 17:38:51 +00:00
Tobie Morgan Hitchcock
9c5178ef0a Add tests for SQL array::group() function 2023-01-07 20:02:49 +00:00
Rushmore Mushambi
005b27eae8
Drop the parallel feature (#1574) 2023-01-07 09:42:45 +00:00
Tobie Morgan Hitchcock
372cd65969 Don’t treat NONE and NULL as the same 2023-01-07 08:54:12 +00:00
Rushmore Mushambi
953a2008e2
Rename the engines module to engine (#1576) 2023-01-07 08:32:18 +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
c0d5aace54 Allow trailing commas in SQL Geometry types
Closes #1523
2023-01-03 17:52:22 +00:00