Commit graph

853 commits

Author SHA1 Message Date
Finn Bear
5e0e72def2
Bugfix - ret. QueryNotExecuted if implicit txn. fails to commit. (#2039) 2023-05-23 23:03:59 +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
0c033318fc
deps - upgrade to regex@1.8.2 (#2036) 2023-05-23 06:46:22 +01:00
hchockarprasad
53d8e9c628
Make client error serializable (#1992) 2023-05-22 21:02:48 +01:00
Tobie Morgan Hitchcock
6b02c2f026
Bump versions (#2033) 2023-05-22 15:35:30 +01:00
Tobie Morgan Hitchcock
b137535d8a
Update 3rd party dependencies (#2028) 2023-05-22 14:38:10 +01:00
Nathaniel Brough
1de753c3ee
Fix bug that prevented the fuzzers from using dictionaries properly (#2030) 2023-05-22 07:40:04 +01:00
Finn Bear
31af5dd4d3
Feature - Add time::EPOCH constant. (#2021) 2023-05-20 08:28:52 +01:00
Finn Bear
ce37db4307
Testing - use tokio runtime in executor fuzzer, blacklist SLEEP (#1984) 2023-05-19 22:34:27 +01:00
Finn Bear
0d658842df
Bugfix #2001 - Error instead of panic when applying malformed patches. (#2007) 2023-05-19 22:02:43 +01:00
Mees Delzenne
405b4cbd9a
Raise rocksdb version (#2018) 2023-05-19 21:28:31 +01:00
hchockarprasad
11543f7d67
Feature: Add unset clause for update statement (#2004) 2023-05-18 09:04:40 +01:00
Finn Bear
94a376adc5
Testing - Add CPU profiling to microbenchmarks (#2000) 2023-05-16 23:31:30 +01:00
Finn Bear
437fc231f1
Bugfix - Visibly warn if failed to deserialize websocket response. (#1999) 2023-05-16 12:31:16 +01:00
hchockarprasad
a8f35611c2
Bugfix - Include index part when patching object value (#1994) 2023-05-15 21:22:13 +01:00
Rushmore Mushambi
c02d176646
Expose the range parser (#1993) 2023-05-15 16:46:20 +01:00
Finn Bear
10f29fbb26
Bugfix - error on integer overflow in SurrealQL. (#1983) 2023-05-12 19:55:52 -04:00
Przemyslaw Hugh Kaznowski
df745bb3a5
Favour rust binary characters instead of hex (#1978) 2023-05-12 19:40:45 -04: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
Tobie Morgan Hitchcock
86483e087a
Fix clippy warnings (#1965) 2023-05-10 12:58:04 -04:00
hchockarprasad
3140e06ad2
Fix http body encoding (#1962) 2023-05-10 08:44:42 -04:00
Rushmore Mushambi
f1ef3bfd21
Add a sql::Value::into_json() method (#1963) 2023-05-10 08:12:47 -04:00
Finn Bear
1140c36942
Bugfix #1949 - use correct feature flag for wss over rustls. (#1960) 2023-05-09 22:28:08 -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
hchockarprasad
bb94374c78
Trim text before json parsing (#1955) 2023-05-09 16:49:12 -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
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
Tobie Morgan Hitchcock
f0e5753cd1
Use static str where possible for context param names (#1942) 2023-05-06 21:49:34 +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
Rushmore Mushambi
3dd0b6d5e8
Fix building the HTTP feature on Wasm (#1928) 2023-05-05 19:14:36 +01:00
Rushmore Mushambi
fb6f1caa6b
Lift 'static restriction on connect methods (#1926) 2023-05-05 19:14:06 +01:00
Rushmore Mushambi
107e5b5dba
Support switching namespaces and databases separately (#1927) 2023-05-05 19:12:19 +01:00
Tobie Morgan Hitchcock
0c752b43e9
Optimise array::join() SQL function (#1925) 2023-05-05 00:06:49 +01:00
Finn Bear
d0e76e64a9
Testing & Bugfix - Ensure consistency of functions. (#1919) 2023-05-05 00:05:51 +01:00
Jan Tebernum
e9ebecfdd6
Feature: Implementation of array::join (#1920) 2023-05-04 21:38:02 +01:00
Finn Bear
975ea616dd
Bugfix - export new array::slice to JS and fuzzer. (#1915) 2023-05-03 22:48:05 +01:00
Jan Tebernum
1cd00cf3fc
Feature: Add function string::contains (#1906) 2023-05-03 11:40:17 +01:00
Finn Bear
46c5b4d7f1
Testing - Add microbenchmarks for query parsing and execution. (#1878) 2023-05-01 18:15:42 +01:00
Finn Bear
a76910e826
Preparation for #1878 - microbenchmarks. (#1894) 2023-04-30 23:50:33 +01:00
Rushmore Mushambi
357a5320ef
Disable URL-encoding on file paths (#1892) 2023-04-30 19:34:46 +01:00
Tobie Morgan Hitchcock
453d368e69
Add integration tests for the built-in SQL functions (#1893) 2023-04-30 19:34:26 +01:00
Finn Bear
12bf8dea6b
Bugfix #1702 - Unicode escape parser for Strand. (#1888) 2023-04-30 19:33:48 +01:00
Nathaniel Brough
7a86ed3a3d
Adds an executor fuzzer and corresponding dictionaries (#1891) 2023-04-30 08:49:03 +01:00
Tobie Morgan Hitchcock
c7e3b927ac
Optimisation - only loop over document fields when processing PERMISSIONS clauses (#1890) 2023-04-30 00:23:19 +01:00
Rushmore Mushambi
1e8903b699
Derive Serialize implementations for enums (#1887) 2023-04-29 21:50:25 +01:00
Finn Bear
3f3b2248b3
Bugfix - Allow {time, duration}::from::* to be parsed (#1886) 2023-04-29 20:57:10 +01:00
Finn Bear
c295cb0509
Optimization - Zero copy key deserialization. (#1880) 2023-04-29 17:44:09 +01:00
Rushmore Mushambi
59947749e3
Add a missing impl<T> IntoEndpoint for (T, native_tls::TlsConnector) for the any engine (#1885) 2023-04-29 17:21:19 +01:00
Rushmore Mushambi
91e949248d
Unify serialisation (#1881) 2023-04-29 16:58:22 +01:00
Rushmore Mushambi
955aea9409
impl From<sql::Value> for serde_json::Value (#1877) 2023-04-29 09:06:02 +01:00
Rushmore Mushambi
141eb091a6
Bypass deserialisation for sql::Value responses on Surreal methods (#1875) 2023-04-28 12:20:57 +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
Nathaniel Brough
f04f575283
Add a simple fuzz-testing harness for the sql parser (#1864) 2023-04-25 23:35:39 +01:00
Finn Bear
b3ebd4c6b5
Bugfix - Fix overflow in duration parser (#1865) 2023-04-25 23:00:31 +01:00
Finn Bear
df07bb32f5
Bugfix - make string::slice properly handle UTF-8 and reallocate less. (#1854) 2023-04-25 22:58:53 +01:00
Finn Bear
c7633414b5
Refactor & Optimize - Number and Array (#1868) 2023-04-25 22:52:02 +01:00
Finn Bear
38016a0ee6
Add SQL array::slice function. (#1855) 2023-04-25 22:48:09 +01:00
Rushmore Mushambi
e6b97ff8ff
Refactor the Connection trait and Surreal methods (#1860) 2023-04-25 15:22:34 +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
Rushmore Mushambi
a15c8c3564
Make error messages clearer when required features are not enabled (#1822) 2023-04-23 12:08:21 +01:00
Rushmore Mushambi
cd16d4af5c
Replace tokio::time with wasmtimer for Wasm targets (#1846) 2023-04-23 08:32:27 +01:00
Tobie Morgan Hitchcock
ee24f8d6a0 Ensure array::remove() function works correctly
Closes #1831
2023-04-20 19:23:13 +01:00
Rushmore Mushambi
78625bc7a1
Bypass deserialisation for sql::Values on Response::take (#1834) 2023-04-20 19:20:50 +01:00
Finn Bear
7e5f4388a2
Refactor and reduce allocations in query executor. (#1819) 2023-04-20 13:30:47 +01:00
Finn Bear
46c15cfb8e
Allow exports larger than 10,240 bytes for local engines (#1833) 2023-04-20 11:42:23 +01:00
Rushmore Mushambi
8eac52315b
Fix HTTP string errors deserialization (#1821) 2023-04-19 09:46:37 +01:00
Finn Bear
a35ed83c88
Streamline Makefile compilation and fix a minor typo. (#1832) 2023-04-19 09:27:53 +01:00
Rushmore Mushambi
32352f4bd1
Add more #[must_use] attributes (#1828) 2023-04-19 09:26:22 +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
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
7413e93a48 Don’t pretty print newlines in objects and arrays if empty 2023-04-15 17:00:01 +01:00
Tobie Morgan Hitchcock
c5de4d8ef0 Update 3rd party dependencies 2023-04-14 17:01:31 +01:00
Tobie Morgan Hitchcock
7448cd1305 Ensure custom functions can write data
Closes #1808
2023-04-14 16:51:15 +01:00
Finn Bear
15bfef4866
Refactor - Clean-up and optimize KVs (#1807) 2023-04-14 12:43:25 +01:00
J
5d929041cb
Remove http crate from axum example (#1789) 2023-04-09 16:55:17 +01:00
Rushmore Mushambi
e075be16b8
Fix Display implementation for empty Groups (#1788) 2023-04-09 11:14:07 +01:00
Tobie Morgan Hitchcock
b63c83a4bc Ensure duration addition and subtraction does not panic
Closes #1773
2023-04-06 09:35:01 +01:00
Tobie Morgan Hitchcock
8083eaf751 Allow :: module separators in custom function names
Closes #1775
2023-04-06 09:35:01 +01:00
Tobie Morgan Hitchcock
5eafebd64b Release v1.0.0-beta.9+20230402 2023-04-02 19:57:02 +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
Tobie Morgan Hitchcock
459da80c89 Don’t build tikv feature for docs.rs 2023-04-02 15:19:06 +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
7bb89d5041 Ensure DEFINE and REMOVE statements are serialized with full field information 2023-04-02 00:28:01 +01:00
Tobie Morgan Hitchcock
683c1adbd4 Ensure DEFINE TOKEN ON SCOPE statments are included in database export 2023-04-01 19:28:44 +01:00
Tobie Morgan Hitchcock
da2fd133ec Don’t build kv-fdb feature on docs.rs 2023-04-01 19:21:16 +01:00
Tobie Morgan Hitchcock
64873eb881 Ensure DEFINE FIELD statements deserialize correctly 2023-04-01 19:07:00 +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
e629ddf9c5 Update LICENSE link on crates.io 2023-04-01 02:10:55 +01:00
Tobie Morgan Hitchcock
c3773b2e57 Release 1.0.0-beta.9 2023-04-01 02:07:04 +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
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
Tobie Morgan Hitchcock
cfb27e0929 Add Bytes type for binary data
Related to #1652
2023-03-31 20:00:21 +01:00
Tobie Morgan Hitchcock
3408004c8c Add initial support for method chaining within an Idiom 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
6e6621565d
Switch the HTTP engine to a binary protocol (#1751) 2023-03-31 18:15:15 +01:00
teenjuna
c7a2430fad
Fix typo in operator.rs (#1750) 2023-03-31 15:19:16 +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
Diptesh Choudhuri
494203d358
Allow exporting to stdout (#1701) 2023-03-30 19:13:26 +01:00
Tobie Morgan Hitchcock
2be25cdcd2 Revert simple serialization of basic types 2023-03-30 16:52:31 +01:00
Tobie Morgan Hitchcock
e41a7f7014 Fix simple serialization of sequences and maps 2023-03-30 16:41:14 +01:00
Tobie Morgan Hitchcock
a1d8494de1 Only parse JavaScript functions beginning with function() 2023-03-30 15:19:18 +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
86f768e996 Ensure tests work correctly when no features enabled 2023-03-30 11:10:07 +01:00
Tobie Morgan Hitchcock
33cbe6528f Upgrade 3rd party dependencies 2023-03-30 11:08:36 +01:00
Finn Bear
50ea5c52cb
Fix #1732 - casting string containing decimal to int. (#1734) 2023-03-29 19:23:13 +01:00
Salvador Girones Gil
565717659a
Add functionality for open telemetry tracing (#1727) 2023-03-29 19:16:18 +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
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
1293d23e59 Add test for multi-aggregate composed grouped maths queries
Closes #1689
2023-03-26 22:35:28 +01:00
Tobie Morgan Hitchcock
13fe68a871 Use custom crate for lexicographical sorting 2023-03-26 22:13:43 +01:00
Tobie Morgan Hitchcock
26a040df85 Update 3rd party dependencies 2023-03-26 22:13:27 +01:00
Tobie Morgan Hitchcock
97bb5a1775 Use any_ascii crate to convert unicode 2023-03-26 19:02:48 +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
fb2356b17a Add SQL array::add() function for adding unique items
Related to #1690
2023-03-26 08:53:37 +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
b49d58a362 Add additional SQL array functions
Closes #1725
Related to #1690

Add `array::append()`, `array::pop()`, `array::prepend()`, `array::push()`, `array::remove()`, and `array::reverse()` SQL functions
2023-03-25 22:37:47 +00:00
Tobie Morgan Hitchcock
2769033451 Update 3rd party dependencies 2023-03-25 20:49:00 +00:00
Tobie Morgan Hitchcock
715b79c24e Fix warnings in release mode 2023-03-25 20:48:51 +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
a64ebdb4a2 Ensure sql::Statement is Storeable 2023-03-25 19:42:45 +00:00
Tobie Morgan Hitchcock
f395162830 Simplify Cargo.toml file 2023-03-25 07:56:22 +00:00
Tobie Morgan Hitchcock
9afb3499ae Sort casting functions by name 2023-03-20 15:22:19 +00:00
Rushmore Mushambi
735856e5b3
Add Axum example (#1715) 2023-03-20 15:20:57 +00:00
Tobie Morgan Hitchcock
407a4c3381 Ensure JavaScript function code is parsed correctly
Closes #1482
2023-03-18 14:52:16 +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
Emmanuel Keller
19c287a011
Implement transaction debug tracing (#1668) 2023-03-16 09:11:30 -04:00
Tobie Morgan Hitchcock
b9df5e64ff Add code and documentation comments 2023-03-16 07:13:47 -04:00