Commit graph

247 commits

Author SHA1 Message Date
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
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
Emmanuel Keller
668d3fd8fb
Introduce query planner and indexing (#1899) 2023-06-19 19:41:13 +01:00
Finn Bear
12cb551156
Change datetime to serialize as secs/nanos instead of string. (#1951) 2023-06-13 21:13:10 +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
5ebf4ee963
Refactor - consolidate Field enum to reduce redundancy. (#2104) 2023-06-10 20:23:22 +00:00
Finn Bear
c45fd12509
Feature - Use rust_decimal (128b) instead of bigdecimal ("arbitrary" precision) (#1991) 2023-06-09 15:23:30 +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
Finn Bear
0d658842df
Bugfix #2001 - Error instead of panic when applying malformed patches. (#2007) 2023-05-19 22:02:43 +01:00
hchockarprasad
11543f7d67
Feature: Add unset clause for update statement (#2004) 2023-05-18 09:04:40 +01:00
hchockarprasad
a8f35611c2
Bugfix - Include index part when patching object value (#1994) 2023-05-15 21:22:13 +01:00
Finn Bear
10f29fbb26
Bugfix - error on integer overflow in SurrealQL. (#1983) 2023-05-12 19:55:52 -04:00
Rushmore Mushambi
f1ef3bfd21
Add a sql::Value::into_json() method (#1963) 2023-05-10 08:12:47 -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
73374d4799
Bugfix - Prevent NUL bytes from existing in UTF-8 strings (#1941) 2023-05-09 13:48:14 -04:00
Tobie Morgan Hitchcock
bfbadc6fdd
Ensure user $input is accessible with all Data pattern types (#1945) 2023-05-07 13:33:32 +01:00
Tobie Morgan Hitchcock
531e75a5b0
Ensure chained future values have access to current document context (#1939) 2023-05-06 07:29:42 +01:00
Tobie Morgan Hitchcock
53212b23be
Don’t use asynchronous functions when not necessary (#1936) 2023-05-06 01:15:03 +01:00
Tobie Morgan Hitchcock
e725b3e8e6
Add detailed code comments for Value enum variants (#1938) 2023-05-06 00:53:26 +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
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
Finn Bear
eeb46468aa
Bugfix #1856 - ensure futures are evaluated in the course of Value::get. (#1867) 2023-04-25 23:58:50 +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
3c027e9e2f
Simplify external API and cleanup unused functions (#1857) 2023-04-24 21:51:35 +01:00
Finn Bear
f159187dbe
Store parsed regex::Regex in Value. (#1837) 2023-04-23 12:55:18 +01:00
Rushmore Mushambi
bc7471a6ad
Add support for serialising sql::Kind in the serialiser (#1847) 2023-04-23 12:09:04 +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
Tobie Morgan Hitchcock
7448cd1305 Ensure custom functions can write data
Closes #1808
2023-04-14 16:51:15 +01:00
Tobie Morgan Hitchcock
b5afc4a3e0 Fix serialization size checking tests 2023-04-02 18:56:45 +01:00
Tobie Morgan Hitchcock
ae13289745 Use larger serialization format while in beta 2023-04-02 17:40:44 +01:00
Rushmore Mushambi
65f1957256
Ensure Value::Bytes serialises correctly (#1757) 2023-04-02 13:24:43 +01:00
Tobie Morgan Hitchcock
3b7a3a5a35 Use larger serialization format while in beta 2023-04-02 00:48:56 +01:00
Tobie Morgan Hitchcock
2895026593 Use custom serialization compaction for DEFINE and REMOVE statements 2023-04-01 18:49:10 +01:00
Tobie Morgan Hitchcock
be42b3e7c9 Ensure strings are parsed last 2023-04-01 18:48:17 +01:00
Tobie Morgan Hitchcock
8a726b794b Add additional database type 2023-03-31 23:49:52 +01:00
Tobie Morgan Hitchcock
45094c76ce Use custom serialization format 2023-03-31 23:49:52 +01:00
Tobie Morgan Hitchcock
cfb27e0929 Add Bytes type for binary data
Related to #1652
2023-03-31 20:00:21 +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
Finn Bear
50ea5c52cb
Fix #1732 - casting string containing decimal to int. (#1734) 2023-03-29 19:23:13 +01:00
Tobie Morgan Hitchcock
6ede630d41 Allow unbounded / untyped record type constraints 2023-03-27 13:42:33 +01:00
Tobie Morgan Hitchcock
3f5347e4b3 Fix code comments 2023-03-26 23:39:45 +01:00
Tobie Morgan Hitchcock
13fe68a871 Use custom crate for lexicographical sorting 2023-03-26 22:13:43 +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
42725789a0 Upgrade Rust code deprecation warnings 2023-03-18 09:18:40 +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
b9df5e64ff Add code and documentation comments 2023-03-16 07:13:47 -04:00
Alejandro
d7956ea73b
Add From<Vec<String> implementation to Value (#1688) 2023-03-07 09:52:34 +00:00
Tobie Morgan Hitchcock
9fcf4c9419 Add a new SQL Block type for multi-line statements and expressions
Closes #225
Closes #1319
Related to #247
2023-02-21 14:15:02 +00:00
Tobie Morgan Hitchcock
454612487a Allow sending Table type for LIVE query RPC method 2023-02-14 11:01:31 +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
77da795d24 Ensure CONTAINS works correctly with Uuids and Datetimes
Closes #1636
2023-02-04 08:15:30 +00:00
Tobie Morgan Hitchcock
84b026679f Update clippy linting tests 2023-02-03 11:47:07 +00:00
Tobie Morgan Hitchcock
3f528ab183 Increase memory size of Model 2023-01-29 12:37:13 +00:00
Tobie Morgan Hitchcock
9282feac1f Allow empty params object from text-based WebSocket clients
Closes #1610
2023-01-20 00:54:33 +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
30953bc2a3 Add SQL rand::ulid() function
Related to #1353
2023-01-17 09:02:01 +00:00
Tobie Morgan Hitchcock
06363e29a7 Add function for raw string output 2023-01-15 09:38:07 +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
5fb324d9af Remove invalid type 2023-01-07 10:39:11 +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
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
8fe5757688 Ensure non-defined array fields are removed from records
Related to #1341
2022-12-31 19:02:12 +00:00
CelebrateVC
3048748573
Ensure last array items (array[$]) compare correctly (#1534) 2022-12-20 10:31:53 +00:00
Etienne Bruines
cef01ad790
Add SQL math::pow() function and ** operator (#1239) 2022-12-18 14:56:07 +00:00
Tobie Morgan Hitchcock
dcc28a6ec7 Allow SELECT statements to START AT 0
Closes #1516
2022-12-09 16:02:36 +00:00
Tobie Morgan Hitchcock
09021ee103 Add Null Coalescing Operator and Ternary Conditional Operator
Closes #1471
Closes #1439
2022-12-02 21:48:10 +00:00
Tobie Morgan Hitchcock
4b14837009 Fix clippy lint warnings 2022-11-23 09:09:24 +00:00
Tobie Morgan Hitchcock
d4f1c28a4a Add conversion functionality from Thing to ID
Closes #1454
2022-11-23 08:59:09 +00:00
Tobie Morgan Hitchcock
b8d485fe32 Fix tests on latest Rust release 2022-11-16 17:57:22 +00:00
Tobie Morgan Hitchcock
a4db0d8427 Ensure parameters in record ranges are computed 2022-11-03 10:55:47 +00:00
Tobie Morgan Hitchcock
4411b4d71f Add support for accessing nested fields inside Future computed values
Closes #1261
2022-10-31 23:24:44 +00:00
Tobie Morgan Hitchcock
426fce00a8 Separate Future into standalone type 2022-10-31 23:24:44 +00:00
Aman Sharma
82c9d7da2b
Add additional From<Value> and TryFrom<Value> implementations (#1410) 2022-10-28 04:35:01 -07:00
Allen Lantz
d1055e6088
Implement hashed implementation of Uniq<Array> (#1310) 2022-10-27 05:23:24 -07:00
Aman Sharma
b92536b649
Add some From<Value> and TryFrom<Value> implementations (#1401) 2022-10-26 07:01:09 -07:00
Tobie Morgan Hitchcock
d12384f3fb Change method signature for converting strings to table names 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
3cbb5eed78 Allow datetimes as an id parameter in the WebSocket RPC message 2022-10-25 06:06:02 -07:00
Tobie Morgan Hitchcock
2e1d39fcf8 Remove unused Response to Value conversion implementation 2022-10-25 06:05:02 -07:00
Tobie Morgan Hitchcock
8f873cae5c Accept SQL ranges within SQL objects and SQL arrays 2022-10-25 06:01:13 -07:00
Tobie Morgan Hitchcock
34dd96efb9 Fix linting tests 2022-10-25 02:41:16 -07:00
Aman Sharma
01858bf4ca
adds From<uuid::Uuid> for sql::Value and sql::Uuid (#1398) 2022-10-24 09:43:50 +01:00
Tobie Morgan Hitchcock
5b76a25932 Ensure equals comparator function never reeaches unreachable code
Closes #1360
2022-10-20 15:54:35 +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
Rushmore Mushambi
f0eaf2bd19
Improve RPC method return types (#1384) 2022-10-19 23:54:41 +01:00
Tobie Morgan Hitchcock
7f56fb9964 Enable fetching fields and values from within complex Record IDs
Closes #1375
2022-10-19 11:03:13 +01:00
Tobie Morgan Hitchcock
73bf56810e Enable searching within Record IDs using the CONTAINS operator
Closes #1377
2022-10-17 23:05:35 +01: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
Tobie Morgan Hitchcock
214971cb86 Ensure UUIDs and Datetimes can be converted to strings correctly
Closes #1338
2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
dfa42f1733 Ensure SQL UUID values are truthy 2022-10-05 19:30:37 +01:00
Finn Bear
45e1a9adce
Refactor, optimization, cleanup (#1288) 2022-10-04 22:51:18 +01:00