Commit graph

698 commits

Author SHA1 Message Date
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
Finn Bear
b0811b263e
Fix #1698 - reduce code duplication in TiKV txn. (#1699) 2023-03-13 22:54:21 -04:00
Emmanuel Keller
f3e605afde
Implements transaction isolation testing (#1674) 2023-03-10 15:24:27 +00:00
Tobie Morgan Hitchcock
d31c6e4fb6 Output milliseconds in SQL Duration strings 2023-03-09 19:32:32 +00:00
Tobie Morgan Hitchcock
cfdbb904a4 Fix build 2023-03-08 10:35:45 +00:00
Tobie Morgan Hitchcock
06d2d88594 Ensure HTTP requests timeout correctly
Closes #1677
2023-03-07 09:54:58 +00:00
Tobie Morgan Hitchcock
fa0ec302ca Add extra tests for nanosecond and millisecond parsing 2023-03-07 09:54:58 +00:00
Tobie Morgan Hitchcock
d8723bf03a Order database keys correctly 2023-03-07 09:54:58 +00:00
Alejandro
d7956ea73b
Add From<Vec<String> implementation to Value (#1688) 2023-03-07 09:52:34 +00:00
Tobie Morgan Hitchcock
5e2236dbfd Add initial implementation for processing LIVE queries 2023-02-22 18:04:30 +00:00
Tobie Morgan Hitchcock
ace60e4d1d Enable DIFF option in LIVE SELECT queries 2023-02-22 18:04:30 +00:00
Tobie Morgan Hitchcock
0589465095 Ensure current document is passed into block statements 2023-02-22 18:04:30 +00:00
Tobie Morgan Hitchcock
c9e98b0a52 Fix pretty printing of block statements 2023-02-22 18:04:30 +00:00
Tobie Morgan Hitchcock
ca9e0f4d3a Rename JavaScript string::length() function to string::len() 2023-02-21 17:27:35 +00:00
Tobie Morgan Hitchcock
9c18025cca Use new SQL Block type for <future> expressions 2023-02-21 14:15:19 +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
70ec7c599e Add pretty-printing support for IF ELSE statements
Related to #247
Related to #225
Related to #1319
2023-02-21 12:29:02 +00: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
275cf18a3a Enable RETURN statements in subqueries
Related to #1319
2023-02-19 19:47:34 +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
5e2157a0a2 Rename SQL string::length() function to string::len() 2023-02-18 21:07:37 +00:00
Tobie Morgan Hitchcock
132354e199 Fix typo in code comment 2023-02-18 18:30:23 +00:00
Tobie Morgan Hitchcock
ef7955c293 Ensure UTF surrogates are removed within strings
Closes #1661
2023-02-16 12:22:23 +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
0e8866b4e3 Add blueprint for JavaScript Web APIs 2023-02-13 17:47:09 +00:00
Tobie Morgan Hitchcock
d17b658163 Support us in addition to µs for microsecond durations 2023-02-13 16:06:36 +00:00
Tobie Morgan Hitchcock
1fb147eb5e Ensure custom JavaScript classes are cloneable 2023-02-13 16:03:29 +00:00
Tobie Morgan Hitchcock
838d4371fe Add static .is() function for comparison of custom JavaScript classes 2023-02-12 15:52:10 +00:00
Tobie Morgan Hitchcock
6556de7cd2 Allow function argument overloading on custom JavaScript classes 2023-02-12 15:51:47 +00:00
Tobie Morgan Hitchcock
612cd39b05 Add toJSON() method to custom JavaScript classes 2023-02-12 15:49:53 +00:00
Tobie Morgan Hitchcock
8cfc286beb Add global console object to JavaScript runtime
Closes #1634
2023-02-12 12:23:44 +00:00
Tobie Morgan Hitchcock
a4db20fb05 Add descriptions for all datastore key types 2023-02-12 12:19:26 +00:00
Tobie Morgan Hitchcock
94cdef565f Ensure function arguments are processed concurrently 2023-02-12 12:18:47 +00:00
Tobie Morgan Hitchcock
1e93c0f304 Ensure permissions are not chekced on PERMISSIONS clauses
Closes #1633
2023-02-12 11:48:11 +00:00
Tobie Morgan Hitchcock
ea84f839da Update 3rd party dependencies 2023-02-11 23:00:03 +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
ab124a2e21 Ensure SQL http functions decode JSON responses correctly
Closes #1649
2023-02-11 17:22:09 +00:00
Tobie Morgan Hitchcock
d3e7936d5e Temporarily remove sql! parser runtime macro
Closes #1643
2023-02-09 10:53:19 +00:00
Tobie Morgan Hitchcock
48756a0a96 Update 3rd party dependencies
Closes #1642
2023-02-07 08:44:25 +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
0a65ecd96d Remove unnecessary code 2023-02-03 09:54:05 +00:00
Tobie Morgan Hitchcock
b0c2fe8f03 Ensure math::fixed() works on Decimal numbers
Closes #1622
2023-01-30 22:25:07 +00:00
Tobie Morgan Hitchcock
3f528ab183 Increase memory size of Model 2023-01-29 12:37:13 +00:00
Tobie Morgan Hitchcock
c16705690b Fix bug with Uuid::new() function when compiling 2023-01-26 19:22:03 +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
79d6107b4e Implement PartialOrd for SQL Geometry type
Originally implemented by @finnbear
2023-01-18 14:45:01 +00:00
Tobie Morgan Hitchcock
55dda013b6 Fix SQL function tests 2023-01-18 00:11:19 +00:00
Tobie Morgan Hitchcock
c37d93bcb9 Ensure edge records are output as RELATE statements in SQL export
Closes #1496
2023-01-17 10:41:34 +00:00
Tobie Morgan Hitchcock
286bbef507 Allow Record IDs for relations in RELATE statements 2023-01-17 10:33:05 +00:00
Tobie Morgan Hitchcock
9fa0a4fbb4 Ensure SQL rand() functions do not hang indefinitely 2023-01-17 10:28:54 +00:00
Tobie Morgan Hitchcock
bb0b10e38a Add functionality to generate different Record IDs
Closes #1353
2023-01-17 09:53:47 +00:00
Tobie Morgan Hitchcock
996b9c1375 Use UUIDv7 as default UUID type 2023-01-17 09:51:58 +00:00
Tobie Morgan Hitchcock
30953bc2a3 Add SQL rand::ulid() function
Related to #1353
2023-01-17 09:02:01 +00:00