Commit graph

256 commits

Author SHA1 Message Date
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
Rushmore Mushambi
a24bb4f4b8
Allow memory as an address endpoint in CLI sql command (#1563) 2022-12-30 23:53:45 +00:00
Finn Bear
54f337c15b
Add not function for negation of a value (#1542) 2022-12-30 09:34:46 +00:00
Rushmore Mushambi
c2dce39f91
Integrate client library into surrealdb crate (#1514) 2022-12-30 08:23:19 +00:00
Tobie Morgan Hitchcock
1ce6c4bae6 Process futures before using as function arguments
Closes #1538
2022-12-22 08:33:57 +00:00
Tobie Morgan Hitchcock
8bd3d8046c Ensure uncaught JavaScript exceptions are caught
Closes #1461
2022-12-18 20:48:37 +00:00
Tobie Morgan Hitchcock
df954a9554 Ensure transaction cache is cleared when necessary
Closes #1526
2022-12-18 10:30:07 +00:00
Aman Sharma
e1e617cff7
Add SQL array::insert() function (#1504) 2022-12-17 21:03:13 +00:00
Tobie Morgan Hitchcock
406e277c3b Ensure crate builds with no-default-features 2022-12-07 19:30:29 +00:00
Tobie Morgan Hitchcock
0eace892ad Remove duplicate unused tests 2022-12-05 23:50:58 +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
Tobie Morgan Hitchcock
3c4f194610 Ensure string::slice does not panic with usize overflow 2022-12-03 23:30:38 +00:00
Allen Lantz
3d3cab4b65
Add SQL array::flatten() function (#1308) 2022-11-28 12:18:30 +00:00
Tobie Morgan Hitchcock
20cbbb203e Ensure SQL array::complement function is correct 2022-11-27 19:42:24 +00:00
Tobie Morgan Hitchcock
77b24cda26 Ensure double quote characters are always escaped properly
Closes #1488
2022-11-27 11:47:31 +00:00
Tobie Morgan Hitchcock
8b5a99c321 Support negative offsets in SQL string::slice() function
Closes #1490
2022-11-27 11:47:31 +00:00
Tobie Morgan Hitchcock
65f219ffe5 Ensure system parameters are not able to be overridden 2022-11-01 23:55:33 +00:00
Allen Lantz
d1055e6088
Implement hashed implementation of Uniq<Array> (#1310) 2022-10-27 05:23:24 -07:00
Rushmore Mushambi
12ded8b066
Log version when starting the server (#1358) 2022-10-27 01:58:08 -07:00
Tobie Morgan Hitchcock
e9364d2efd Ensure GROUP BY fields with functions are output correctly 2022-10-25 18:04:00 -07:00
Tobie Morgan Hitchcock
50a2c25688 Ensure cancelled context does not prevent FETCH of records
Closes #1395
2022-10-22 22:19:12 +01:00
Tobie Morgan Hitchcock
0c4994b33b Ensure nested non-defined objects are not stored in SCHEMAFULL table
Closes #1342
2022-10-20 15:41:32 +01:00
Tobie Morgan Hitchcock
67eb4b97a1 Fix tests 😖 2022-10-19 15:48:50 +01:00
Tobie Morgan Hitchcock
8902fc0a70 Don’t automatically treat naive dates as datetimes
Closes #1328
2022-10-17 03:34:07 +01:00
Tobie Morgan Hitchcock
c63fc47bc0 Ensure Record IDs with string-based integers, are output correctly
Closes #1327
2022-10-17 00:05:38 +01:00
Finn Bear
88100854a8
Limit computation depth in functions, futures, and subqueries. (#241) 2022-10-06 17:35:03 +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
7cd8bab75c Ensure FETCH clauses fetch the respective data correctly
Closes #249
2022-09-30 21:42:33 +01:00
Tobie Morgan Hitchcock
cb7c159d71 Allow custom Record IDs in RELATE statements 2022-09-30 21:33:33 +01:00
Tobie Morgan Hitchcock
bec3d49b6d Allow deep merging in UPDATE ... MERGE statements
Closes #1225
2022-09-29 11:16:57 +01:00
Rushmore Mushambi
5a47217783
Feature gate scripting tests (#1251) 2022-09-27 18:02:37 +01:00
Tobie Morgan Hitchcock
4db61d89a2 Ensure DELETE statements with UNIQUE INDEX work correctly
Closes #1210
2022-09-24 18:58:56 +01:00
Tobie Morgan Hitchcock
0381b6dad2 Simplify SCHEMAFUL and SCHEMAFULL parsing definitions
Closes #220
2022-09-20 08:11:14 +01:00
Andrei Miulescu
3b649384b2
Ensure datetimes work in +12 timezones (#190)
Closes #189
2022-09-17 16:30:00 +01:00
Tobie Morgan Hitchcock
f90eb542bd Add support SCHEMAFUL keyword spelling
Closes #115
2022-09-11 09:08:36 +01:00
Tobie Morgan Hitchcock
a8497ff6b3 Fix tests for improved logging of field and index errors 2022-09-10 06:17:03 +01:00
Tobie Morgan Hitchcock
93dedd4869 Fix SQL Geometry type serialization and output
Closes #93
2022-09-02 11:32:34 +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
7a857801d2 Ensure selected NS/DB is reflected in current session info
Closes #36
2022-08-29 17:30:50 +01:00
Tobie Morgan Hitchcock
e26d86b412 Add initial tests for DEFINE TABLE … AS … statements 2022-08-28 23:07:38 +01:00