Commit graph

240 commits

Author SHA1 Message Date
hchockarprasad
432a6cc5b8
Add time::min & time::max function () 2023-07-23 08:19:28 +00:00
Emmanuel Keller
0b56d5c6c6
feat: WITH clause on SELECT statement () 2023-07-21 18:41:36 +00:00
Emmanuel Keller
b66e537f98
Unique index should ignore none or null values () 2023-07-21 18:40:59 +00:00
Emmanuel Keller
063f4e6665
feat: implements Multi-index execution plan () 2023-07-20 12:56:32 +00:00
Mees Delzenne
cacd9a1de9
Add tests for http functions () 2023-07-20 12:46:11 +00:00
hchockarprasad
88bcc87d39
Add array::at function () 2023-07-20 08:27:04 +00:00
hchockarprasad
eef9b755cb
Add first, last functions to array () 2023-07-19 14:23:07 +00:00
Tobie Morgan Hitchcock
87dee375a8
Fix model range increments () 2023-07-19 14:00:06 +00:00
Przemyslaw Hugh Kaznowski
769ed5ab85
Sur 253 Change Cl->Nd, rework key/mod ()
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 () 2023-07-16 13:04:22 +00:00
hchockarprasad
a2ef2d83df
Make what parser to parse idioms as well () 2023-07-15 16:26:36 +00:00
Tobie Morgan Hitchcock
a12348db8e
Path processing improvements () 2023-07-15 07:08:26 +00:00
Eduardo Pereira de Sousa
b3a1b39236
Feature: Add additional functions for comparing strings for similarity. ()
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-14 20:37:52 +00:00
Tim
b83cd86f9d
Feature: 1903 Basic Vector Functions ()
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 () 2023-07-14 12:22:37 +00:00
Emmanuel Keller
ee3a1c211f
Select/Explain should only return the explanation () 2023-07-13 10:12:34 +00:00
Finn Bear
ce9430d1ac
Bugfix - Allow escape characters in scripts () 2023-07-13 08:06:12 +00:00
Emmanuel Keller
75fc006c21
Ensure index resources are properly deleted on index deletion () 2023-07-10 08:24:47 +00:00
hchockarprasad
bb61ee7ff9
Add thing as scalar node for indexing ()
Co-authored-by: Emmanuel Keller <emmanuel.keller@surrealdb.com>
2023-07-10 08:19:37 +00:00
JustAnotherCodemonkey
a10b9cbb75
Feature for : Add array functions to reduce JS slowdown. ()
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 () 2023-07-10 06:24:18 +00:00
Tobie Morgan Hitchcock
b33223562a
Add two failing index tests () 2023-07-06 16:46:49 +00:00
Emmanuel Keller
e9eeb9aca7
QueryPlanner / indexing / Context / Cursor doc () 2023-07-06 14:57:42 +00:00
Tobie Morgan Hitchcock
4b690c763b
Improve datastore configuration options () 2023-07-05 21:26:13 +00:00
Emmanuel Keller
67687496c6
Fix context cancellation issue () 2023-07-05 13:30:44 +00:00
Tobie Morgan Hitchcock
31ccb0c904
Enable inner field access on sql::Geometry types () 2023-07-01 21:04:24 +00:00
Tobie Morgan Hitchcock
55918b7c0e
Switch to bincode serialization ()
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 () 2023-06-30 16:51:03 +00:00
Rushmore Mushambi
699880f155
Print tracing logs for cargo test when RUST_LOG is set () 2023-06-30 11:43:19 +00:00
Emmanuel Keller
1c6ada0f69
BM25 without parameters () 2023-06-30 11:35:02 +00:00
Emmanuel Keller
73a4e54ad5
Bugfix - matches operator returns results on non-matching terms () 2023-06-26 18:23:05 +00:00
Emmanuel Keller
6d5dcfadd9
Feature - Full-text search scoring function () 2023-06-23 21:26:19 +01:00
Emmanuel Keller
f688eb4ef5
Fixes highlighting bug (out or range for slice length...) () 2023-06-23 11:58:51 +00:00
Emmanuel Keller
8e64750a60
Feature - Search highlighting () 2023-06-21 19:31:15 +01:00
Finn Bear
41e119a5f5
Feature - unary operators () 2023-06-21 00:31:23 +01:00
Nrishinghananda Roy
5485883d3c
Fix multiple Clippy Lints () 2023-06-20 12:48:20 +01:00
Tobie Morgan Hitchcock
a1b1fead7b
Ensure formatting and linting are properly checked () 2023-06-19 22:35:19 +00:00
Emmanuel Keller
668d3fd8fb
Introduce query planner and indexing () 2023-06-19 19:41:13 +01:00
Rushmore Mushambi
6f79f1556a
Test FoundationDB () 2023-06-13 20:55:38 +00:00
Gustavo
e42c8fdb1a
fix: Value equal implementation in the Bool match case ()
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) () 2023-06-09 15:23:30 +00:00
Rushmore Mushambi
409ad61477
Add authentication support for local engines () 2023-06-09 13:45:07 +00:00
Tobie Morgan Hitchcock
f5f10d508f
Improve type casting support ()
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 () 2023-05-31 12:35:41 +00:00
Marta Sanchez
496d16242f
Change data returned by the INFO statement ()
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 () 2023-05-29 12:46:41 +01:00
Rushmore Mushambi
9cd25566ac
Fix deserialising HTTP query responses () 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 () 2023-05-23 07:10:09 +01:00
Finn Bear
db345a2ce7
Bugfix - time::ceil function edge case. () 2023-05-12 13:59:58 -04:00
Finn Bear
01b280623c
Feature - Add time::ceil function. () 2023-05-11 14:46:36 -04:00
Emmanuel Keller
848be4dafb
Implements analyzer definition () 2023-05-09 22:08:09 -04:00
Tobie Morgan Hitchcock
19b0920e15
Ensure Idiom paths result in writeable transactions where necessary () 2023-05-09 18:17:29 -04:00
Finn Bear
ccc16fa9a7
Feature - Expand support for Bytes () 2023-05-09 16:43:16 -04:00
Finn Bear
3d76645908
Bugfix - allow 4X deeper computation by default, make limit configurable () 2023-05-09 07:37:07 +01:00
Tobie Morgan Hitchcock
bfbadc6fdd
Ensure user $input is accessible with all Data pattern types () 2023-05-07 13:33:32 +01:00
Rushmore Mushambi
107e5b5dba
Support switching namespaces and databases separately () 2023-05-05 19:12:19 +01:00
Jan Tebernum
e9ebecfdd6
Feature: Implementation of array::join () 2023-05-04 21:38:02 +01:00
Jan Tebernum
1cd00cf3fc
Feature: Add function string::contains () 2023-05-03 11:40:17 +01:00
Tobie Morgan Hitchcock
453d368e69
Add integration tests for the built-in SQL functions () 2023-04-30 19:34:26 +01:00
Rushmore Mushambi
91e949248d
Unify serialisation () 2023-04-29 16:58:22 +01:00
Rushmore Mushambi
141eb091a6
Bypass deserialisation for sql::Value responses on Surreal methods () 2023-04-28 12:20:57 +01:00
Tobie Morgan Hitchcock
66b105dac0
Add support for stricter typings ()
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 
2023-04-20 19:23:13 +01:00
Rushmore Mushambi
8eac52315b
Fix HTTP string errors deserialization () 2023-04-19 09:46:37 +01:00
Finn Bear
28bd007f72
Limit the number of concurrent futures run when fetching remote records () 2023-04-18 22:32:29 +01:00
Finn Bear
c9a9336fdc
Improve performance and security of simple JSON parser () 2023-04-17 15:39:37 +01:00
Rushmore Mushambi
ed20048358
Improve GitHub Actions CI run time () 2023-04-17 14:27:32 +01:00
Rushmore Mushambi
179878d672
Add compile-time guarantees to make Surreal::delete safer () 2023-03-31 23:49:29 +01:00
Tobie Morgan Hitchcock
78329abf97 Enable access to input data using $input variable
Closes 
2023-03-31 20:00:21 +01:00
Rushmore Mushambi
4a86af1d1f
Re-activate integration tests for the HTTP engine () 2023-03-31 13:38:09 +01:00
Tobie Morgan Hitchcock
cd5d452e5b Ensure internal edge record fields can not be modified
Closes 
2023-03-30 19:30:49 +01:00
Rushmore Mushambi
3e80aa9914
Implement to_value for sql::Value ()
`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 () 2023-03-29 19:14:40 +01:00
Rushmore Mushambi
108f080280
Temporarily disable integration tests for the HTTP engine () 2023-03-29 16:41:44 +01:00
Tobie Morgan Hitchcock
1293d23e59 Add test for multi-aggregate composed grouped maths queries
Closes 
2023-03-26 22:35:28 +01:00
Tobie Morgan Hitchcock
cad596cdf3 Ensure GROUP BY clauses with multi same-aggregate functions work correctly
Closes 
2023-03-26 10:04:18 +01:00
Tobie Morgan Hitchcock
1102a2c6da Add operator for unique array add
Related to 
2023-03-25 23:17:33 +00:00
Tobie Morgan Hitchcock
4dba9fc675 Don’t treat arrays as sets
Closes 
2023-03-25 22:38:09 +00:00
Tobie Morgan Hitchcock
cdac4f84cd Add support for custom SQL functions
Closes 
2023-03-25 19:44:03 +00:00
Tobie Morgan Hitchcock
f48de42695 Add suport for flattened query results with VALUE field clauses
Closes 
2023-03-17 07:32:31 -04:00
Tobie Morgan Hitchcock
223d119b2c Allow SQL subqueries to be ended witrh ; character
Related to 
Related to 
Related to 
2023-02-20 20:40:05 +00:00
Tobie Morgan Hitchcock
185eb91f22 Allow raw SQL subqueries without surrounding brackets
Related to 
Related to 
Related to 
2023-02-20 14:24:37 +00:00
Tobie Morgan Hitchcock
f7dd73212d Make SQL subquery behaviour understandable and consistent
Closes 
Closes 
2023-02-19 17:34:18 +00:00
Tobie Morgan Hitchcock
d2571a6b29 Ensure UUIDs convert to strings correctly
Closes 
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 
2023-01-17 09:00:30 +00:00
Tobie Morgan Hitchcock
7fabf54593 Add ability to define global parameters on database
Closes 
2023-01-09 15:49:47 +00:00
Tobie Morgan Hitchcock
23be3353be Check expressions for SPLIT ON, GROUP BY, and ORDER BY clauses
Closes 
Closes 
Closes 
Closes 
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 () 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 () 2023-01-07 08:32:18 +00:00
Tobie Morgan Hitchcock
f5b21eb363 Add support for FLEXIBLE fields on SCHEMAFULL tables
Closes 
2023-01-04 09:50:01 +00:00
Tobie Morgan Hitchcock
c0d5aace54 Allow trailing commas in SQL Geometry types
Closes 
2023-01-03 17:52:22 +00:00
Rushmore Mushambi
a24bb4f4b8
Allow memory as an address endpoint in CLI sql command () 2022-12-30 23:53:45 +00:00
Finn Bear
54f337c15b
Add not function for negation of a value () 2022-12-30 09:34:46 +00:00
Rushmore Mushambi
c2dce39f91
Integrate client library into surrealdb crate () 2022-12-30 08:23:19 +00:00
Tobie Morgan Hitchcock
1ce6c4bae6 Process futures before using as function arguments
Closes 
2022-12-22 08:33:57 +00:00
Tobie Morgan Hitchcock
8bd3d8046c Ensure uncaught JavaScript exceptions are caught
Closes 
2022-12-18 20:48:37 +00:00
Tobie Morgan Hitchcock
df954a9554 Ensure transaction cache is cleared when necessary
Closes 
2022-12-18 10:30:07 +00:00
Aman Sharma
e1e617cff7
Add SQL array::insert() function () 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 
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 () 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 
2022-11-27 11:47:31 +00:00
Tobie Morgan Hitchcock
8b5a99c321 Support negative offsets in SQL string::slice() function
Closes 
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> () 2022-10-27 05:23:24 -07:00
Rushmore Mushambi
12ded8b066
Log version when starting the server () 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 
2022-10-22 22:19:12 +01:00
Tobie Morgan Hitchcock
0c4994b33b Ensure nested non-defined objects are not stored in SCHEMAFULL table
Closes 
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 
2022-10-17 03:34:07 +01:00
Tobie Morgan Hitchcock
c63fc47bc0 Ensure Record IDs with string-based integers, are output correctly
Closes 
2022-10-17 00:05:38 +01:00
Finn Bear
88100854a8
Limit computation depth in functions, futures, and subqueries. () 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 
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 
2022-09-29 11:16:57 +01:00
Rushmore Mushambi
5a47217783
Feature gate scripting tests () 2022-09-27 18:02:37 +01:00
Tobie Morgan Hitchcock
4db61d89a2 Ensure DELETE statements with UNIQUE INDEX work correctly
Closes 
2022-09-24 18:58:56 +01:00
Tobie Morgan Hitchcock
0381b6dad2 Simplify SCHEMAFUL and SCHEMAFULL parsing definitions
Closes 
2022-09-20 08:11:14 +01:00
Andrei Miulescu
3b649384b2
Ensure datetimes work in +12 timezones ()
Closes 
2022-09-17 16:30:00 +01:00
Tobie Morgan Hitchcock
f90eb542bd Add support SCHEMAFUL keyword spelling
Closes 
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 
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 
2022-09-01 01:34:31 +01:00
Tobie Morgan Hitchcock
308004aacf Improve unique index duplicate value error messages
Closes 
2022-08-31 20:00:22 +01:00
Tobie Morgan Hitchcock
7a857801d2 Ensure selected NS/DB is reflected in current session info
Closes 
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
Tobie Morgan Hitchcock
56d3b0e861 Fix bug where records couldn’t be updated after defining an index
Closes 
2022-08-25 14:50:11 +01:00
Tobie Morgan Hitchcock
af45b33fa0 Return error when selecting from non-existent table in strict mode
Closes 
2022-08-10 17:49:32 +01:00
Tobie Morgan Hitchcock
b5b8f70330 Add initial integrations tests for futures 2022-07-30 22:57:14 +01:00
Tobie Morgan Hitchcock
ad4393f6ed Add initial integration tests for SQL models 2022-07-29 10:48:23 +01:00
Tobie Morgan Hitchcock
b68a1814ea Add initial integration tests for DEFINE statements 2022-07-29 09:42:00 +01:00
Tobie Morgan Hitchcock
54f7395555 Add initial integration tests 2022-07-28 10:00:06 +01:00