Commit graph

798 commits

Author SHA1 Message Date
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
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
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
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
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
8f89f8729c Update 3rd party dependencies
Closes #1593
2023-01-17 09:00:30 +00:00
Tobie Morgan Hitchcock
06363e29a7 Add function for raw string output 2023-01-15 09:38:07 +00:00
Allen Lantz
07a2e5f009
Ensure invalid datetimes to not panic (#1550) 2023-01-15 09:29:46 +00:00
Rushmore Mushambi
63ba510b09
Use spawn_local instead of tokio::spawn on WebAssembly (#1595) 2023-01-14 19:56:40 +00:00
Rushmore Mushambi
7f927d77aa
Make conversion from Rust <-> SurrealDB lossless (#1600) 2023-01-14 19:29:39 +00:00
Tobie Morgan Hitchcock
db4ac267c2 Ensure std::time::Instant is replaced with trice::Instant everywhere 2023-01-10 19:50:51 +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
2949ea7f4d Add SQL is::datetime() function
Closes #1301
2023-01-09 09:52:21 +00:00
Tobie Morgan Hitchcock
cca04de5c4 Add SQL time::format() function to JavaScript context 2023-01-09 09:52:21 +00:00
Tobie Morgan Hitchcock
b357e24e44 Replace std::time::Instant with trice::Instant 2023-01-09 09:52:21 +00:00
Tobie Morgan Hitchcock
f5739cba48 Add SQL time::timezone() function
Related to #1428
2023-01-09 09:52:20 +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
1162e4a8ce Use simplified error strings for errors at crate level 2023-01-08 14:51:36 +00:00
Tobie Morgan Hitchcock
1cef0946dc Don’t allow invalid aggregate functions to be used in GROUP BY clauses 2023-01-08 14:36:44 +00:00
Tobie Morgan Hitchcock
369a100c92 Disallow zero-length SQL Ident values
Closes #1583
2023-01-08 09:05:31 +00:00
Tobie Morgan Hitchcock
9c5178ef0a Add tests for SQL array::group() function 2023-01-07 20:02:49 +00:00
Tobie Morgan Hitchcock
44f064a686 Add additional SQL array functions to JavaScript context 2023-01-07 20:02:37 +00:00
Tobie Morgan Hitchcock
b53103c9c7 Add SQL array::group() function 2023-01-07 19:40:56 +00:00
Rushmore Mushambi
513f213a4a
Fix version string (#1585) 2023-01-07 13:57:20 +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
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
98a5d75d63 Add SurrealQL functions to JavaScript runtime 2023-01-04 07:51:21 +00:00
Tobie Morgan Hitchcock
c0d5aace54 Allow trailing commas in SQL Geometry types
Closes #1523
2023-01-03 17:52:22 +00:00
Tobie Morgan Hitchcock
916805b9cc Use $input instead of $value in INSERT statements 2023-01-01 16:18:39 +00:00
Tobie Morgan Hitchcock
b8c5f23d56 Don’t run permissions on DEFINE EVENT and DEFINE TABLE queries
Closes #1570
2023-01-01 16:18:39 +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
Tobie Morgan Hitchcock
48a8d7b6eb Fix clippy linting warnings 2022-12-31 17:05:39 +00:00
Tobie Morgan Hitchcock
8355ce7f89 Fix clippy linting warnings 2022-12-31 08:17:54 +00:00
Rushmore Mushambi
a24bb4f4b8
Allow memory as an address endpoint in CLI sql command (#1563) 2022-12-30 23:53:45 +00:00
Rushmore Mushambi
d7c26bd64b
Fix Error import (#1560) 2022-12-30 12:57:47 +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
fee14d8477 Ensure ** operator works correctly 2022-12-27 12:55:53 +00:00
Tobie Morgan Hitchcock
1ce6c4bae6 Process futures before using as function arguments
Closes #1538
2022-12-22 08:33:57 +00:00
CelebrateVC
3048748573
Ensure last array items (array[$]) compare correctly (#1534) 2022-12-20 10:31:53 +00:00
Tobie Morgan Hitchcock
44c3f32f69 Fix clippy linting warnings 2022-12-20 10:30:40 +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
3ab5a9fffe Add IN and NOT IN operators
Closes #1532
2022-12-18 18:14:07 +00:00
Etienne Bruines
cef01ad790
Add SQL math::pow() function and ** operator (#1239) 2022-12-18 14:56:07 +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
0c2fe82f32 Allow whitespace around JavaScript function arguments
Closes #1530
2022-12-17 16:23:20 +00:00
Tobie Morgan Hitchcock
6804c6d79b Ensure RocksDB range scans are inclusive at the start 2022-12-12 19:38:43 +00:00
Tobie Morgan Hitchcock
c3db35cbeb Prevent recursive queries inside futures
Closes #1513
2022-12-11 23:55:38 +00:00
Tobie Morgan Hitchcock
dcc28a6ec7 Allow SELECT statements to START AT 0
Closes #1516
2022-12-09 16:02:36 +00:00
Rushmore Mushambi
59dcc44883
Replace surf with reqwest (#1512) 2022-12-08 18:39:46 +00:00
Tobie Morgan Hitchcock
406e277c3b Ensure crate builds with no-default-features 2022-12-07 19:30:29 +00:00
Tobie Morgan Hitchcock
bcb903c0af Ensure functions are in alphabetical order 2022-12-07 19:29:44 +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
a3d0f46994 Add current INSERT value as parameter value to ON DUPLICATE KEY clause
Closes #1376
2022-12-04 20:59:30 +00:00
Tobie Morgan Hitchcock
3c4f194610 Ensure string::slice does not panic with usize overflow 2022-12-03 23:30:38 +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
Allen Lantz
3d3cab4b65
Add SQL array::flatten() function (#1308) 2022-11-28 12:18:30 +00:00
Kazantcev Andrey
3f26273128
Optimize the map builder macros (#1483) 2022-11-28 10:36:12 +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
f0520313b5 Ensure no HTTP body is sent when not specified
When calling the `http::put()`, `http::post()`, and `http::patch()` SQL functions, the HTTP body is not added or sent if it is specified as `NONE`.

Closes #1492
2022-11-27 10:13:29 +00:00
Tobie Morgan Hitchcock
37871ceb81 Ensure math::variance() function does not divide by zero 2022-11-23 09:45:32 +00:00
CelebrateVC
f0745386cf
Improve code comments for documentation (#1476) 2022-11-23 09:42:59 +00:00
Tobie Morgan Hitchcock
2323222f2d Don’t take response output by reference 2022-11-23 09:11:58 +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
6b20bbd5f7 Add SQL array::complement function
Closes #1315
2022-11-03 11:49:08 +00:00
Tobie Morgan Hitchcock
a4db0d8427 Ensure parameters in record ranges are computed 2022-11-03 10:55:47 +00:00
Tobie Morgan Hitchcock
7f953319ec Use consistent singular function naming for SQL time functions 2022-11-03 10:50:51 +00:00
Tobie Morgan Hitchcock
f3c9a9ab4b Ensure record is only cleared when permissions have been checked
Closes #1429
2022-11-02 14:26:27 +00:00
Tobie Morgan Hitchcock
e9615cd5ff Add SQL is::url() function for checking if a string is a URL 2022-11-02 14:26:27 +00:00
Tobie Morgan Hitchcock
65f219ffe5 Ensure system parameters are not able to be overridden 2022-11-01 23:55:33 +00:00
Tobie Morgan Hitchcock
ed18003223 Use Chamberlain Duquette geo algorithm to calculate geometry areas
The Chamberlain Duquette geo algorithm is now used to return the geodesic area of a SQL Geometry in meters squared.

Closes #1414
2022-11-01 00:23:58 +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
Tobie Morgan Hitchcock
af9bd5b62f Support path expressions after Record IDs with integer IDs 2022-10-30 01:32:27 +00:00
Tobie Morgan Hitchcock
12b6e04539 Implement inclusive and unbounded record ranges
Closes #1412
Closes #1413
2022-10-30 01:32:27 +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
Rushmore Mushambi
12ded8b066
Log version when starting the server (#1358) 2022-10-27 01:58:08 -07:00
Tobie Morgan Hitchcock
790935b2b5 Ensure build succeeds without uuid_unstable build flag
Closes #1403
2022-10-27 00:31:37 -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
e9364d2efd Ensure GROUP BY fields with functions are output correctly 2022-10-25 18:04:00 -07:00
Tobie Morgan Hitchcock
9c788d9d21 Ensure unstable UUID functions are behind a build flag 2022-10-25 15:17:21 -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
e1797d6170 Add public function for enabling internal serialization 2022-10-25 04:52:24 -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
50a2c25688 Ensure cancelled context does not prevent FETCH of records
Closes #1395
2022-10-22 22:19:12 +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
2ceb10f4cb Allow Record IDs defined within parameters to be used in CREATE and RELATE statements
Closes #1383
2022-10-19 19:16:31 +01:00
Tobie Morgan Hitchcock
7f84504170 Remove old code comment 2022-10-19 18:56:56 +01:00
Tobie Morgan Hitchcock
67eb4b97a1 Fix tests 😖 2022-10-19 15:48:50 +01:00
Tobie Morgan Hitchcock
f0b30e9526 Format strings with single quotes if string does not contain any characters 2022-10-19 11:09:09 +01:00
Tobie Morgan Hitchcock
227bb0a3ce Ensure database doesn’t panic when rounding decimal values with more than 16 decimal places
Closes #1378
2022-10-19 11:06:17 +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
ad6ee5b42d Add some additional code comments 2022-10-19 10:55:19 +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
8902fc0a70 Don’t automatically treat naive dates as datetimes
Closes #1328
2022-10-17 03:34:07 +01:00
Tobie Morgan Hitchcock
eca8cd8d1d Ensure SQL datetimes are formatted correctly as strings 2022-10-17 03:25:58 +01:00
Tobie Morgan Hitchcock
d2761c6bf6 Ensure RELATE statements parse correctly with parameters
Closes #1313
2022-10-17 03:13:40 +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
c63fc47bc0 Ensure Record IDs with string-based integers, are output correctly
Closes #1327
2022-10-17 00:05:38 +01:00
Tobie Morgan Hitchcock
d148ca9ab9 Ensure Record IDs in single / double quoted strings are parsed consistently
Closes #1327
2022-10-17 00:03:46 +01:00
Tobie Morgan Hitchcock
c9243dec3c Add new functions for gnerating v4 and v7 UUIDs
Related to #1353
2022-10-16 23:38:50 +01:00
Tobie Morgan Hitchcock
810e174c63 Code tidy up 2022-10-16 23:20:57 +01:00
Tobie Morgan Hitchcock
072bbdebdb Add support for FETCH cluases in SQL RETURN statements
Closes #1323
2022-10-16 23:12:24 +01:00
Tobie Morgan Hitchcock
f0bb81b809 Fix clippy linting warnings 2022-10-16 22:25:48 +01:00
Tobie Morgan Hitchcock
3e25debd3a Simplify string formatting of UUIDs 2022-10-16 22:25:19 +01:00
Tobie Morgan Hitchcock
400ed09ecb Ensure PERMISSIONS clauses are not run for ROOT / NS / DB users 2022-10-16 22:22:13 +01:00
Tobie Morgan Hitchcock
e6eb6168a1 Simplify parsing of string based types 2022-10-16 21:35:50 +01:00
Tobie Morgan Hitchcock
1f6847be85 Ensure all valid unicode characters are parsed without failing
Closes #1366
2022-10-16 21:05:31 +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
16638561a2 Add support for parsing UUID versions 5, 6, 7, and 8 2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
0bc798cbe0 Remove SQL debugging functionality 2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
15d5c43adb Ensure SQL queries are parsed completely or fail
Closes #1364
2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
54b2666685 Allow debugging of context variable values 2022-10-06 17:35:58 +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
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
Tobie Morgan Hitchcock
1d02601a4b Add time::format SQL function 2022-10-04 22:26:03 +01:00
Tobie Morgan Hitchcock
80040152a2 Add parse::url::scheme function for parsing a url protocol/scheme
Closes #1304
2022-10-04 00:28:30 +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
66b182ec7d Add explicit Constant type for SurrealQL constants 2022-10-01 15:55:48 +01:00
oricc
176c9f692c
Add support for constants, and add math constants (#1263) 2022-09-30 22:22:00 +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
79b5ef6411 No need to convert to string before reference 2022-09-30 21:40:56 +01:00
Tobie Morgan Hitchcock
cb7c159d71 Allow custom Record IDs in RELATE statements 2022-09-30 21:33:33 +01:00
Tobie Morgan Hitchcock
2bd2c3ee0b Remove unnecessary debugging code 2022-09-29 15:04:57 +01:00
Tobie Morgan Hitchcock
bec3d49b6d Allow deep merging in UPDATE ... MERGE statements
Closes #1225
2022-09-29 11:16:57 +01:00
Finn Bear
f2bb4f64af
Limit time and memory available to Javascript functions (#1270) 2022-09-29 08:42:06 +01:00
Tobie Morgan Hitchcock
219b2cb36c Ensure part durations are parsed as idents 2022-09-29 07:36:42 +01:00
Tobie Morgan Hitchcock
7ef7fb7a2d Ensure nested computed fields are not set on the root object when a parent field does not exist
Closes #130
2022-09-28 02:37:30 +01:00
Tobie Morgan Hitchcock
0bd0019def Ensure nested fields are allowed in REMOVE FIELD statements 2022-09-28 02:37:10 +01:00
Fabiano Frizzo
26c1cff9f1
Fix typo in function definition for math::round (#1260) 2022-09-28 01:48:46 +01:00
Finn Bear
cddef8ca19
Refactor - optimizations and cleanup. (#1255) 2022-09-27 22:35:30 +01:00
Rushmore Mushambi
9c0f9a381e
Feature gate more http functions (#1252) 2022-09-27 18:02:49 +01:00
Tobie Morgan Hitchcock
63f910cc1a Use correct hexadecimal code for \ characters in strings
Closes #1237
2022-09-27 12:38:17 +01:00
Tobie Morgan Hitchcock
e01fc12331 Ensure partial timezone offsets are calculated correctly 2022-09-26 11:31:13 +01:00
Tobie Morgan Hitchcock
7f66592808 Fix key scan range iteration in RocksDB storage engine
Closes #1221
2022-09-26 03:33:30 +01:00
Tobie Morgan Hitchcock
88ef1b6e27 Add support for escaped characters and unicode characters in strings
Closes #90
Closes #137
Closes #245
Closes #1202
Closes #1212
2022-09-26 01:29:26 +01:00
Tobie Morgan Hitchcock
75d1e86990 Add DEFINE TOKEN … ON SCOPE … functionality
Closes #144
2022-09-25 22:58:38 +01:00
Tobie Morgan Hitchcock
016455025c Ensure LET statements throw errors correctly on failure 2022-09-25 10:56:57 +01:00
Tobie Morgan Hitchcock
13bedf6ce1 Allow using subquery Record IDs embedded within other records 2022-09-25 10:56:57 +01:00
CelebrateVC
d5a378b1be
Implement math functions that were marked as todo (#1218) 2022-09-25 10:55:07 +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
25926cba83 Remove <datetime> / <duration> functionality in favour of time::floor function
Closes #1213
2022-09-24 11:17:47 +01:00
Finn Bear
d141605266
Bugfix - prevent division by zero. (#1206) 2022-09-24 10:57:26 +01:00
Tobie Morgan Hitchcock
e2352269c0 Fix bug where escaped characters were not supported in regex values 2022-09-24 10:56:54 +01:00
Tobie Morgan Hitchcock
5580f288fd Allow CREATE statement to accept an id field in the content 2022-09-24 02:58:19 +01:00
Finn Bear
fba743ef0b
Don't let surf panic on invalid URIs (#1205) 2022-09-24 01:25:05 +01:00
Tobie Morgan Hitchcock
5fe1fd0227 Fix linting warnings 2022-09-23 08:41:40 +01:00
Tobie Morgan Hitchcock
26de0b5c46 Add additional convenience functions on Value type 2022-09-23 01:07:53 +01:00
Finn Bear
b31dbb28fe
Miscellaneous performance optimizations and code cleanup (#240) 2022-09-23 00:54:53 +01:00
Hugo Saracino
58cffa2de6
Add duration functions for calculating durations as integers (#257) 2022-09-23 00:48:49 +01:00
Finn Bear
825ccf0986
Separate sync and async fns again (#242) 2022-09-22 16:49:17 +01:00
Tobie Morgan Hitchcock
4ca579160c Ensure datetimes with milliseconds are parsed correctly
Closes #250
2022-09-22 02:33:12 +01:00
Finn Bear
6dbe4d0807
Limit maximum potential cost of crypto::bcrypt functions (#239) 2022-09-21 03:47:21 +01:00
Finn Bear
b3ec3b4d8e
Use a dedicated executor thread for CPU-intensive functions (#186) 2022-09-21 02:27:28 +01:00
Finn Bear
de7d9299fd
Refactor function dispatch (#125) 2022-09-21 01:57:33 +01:00
James
13b14380c6
Fix anomalies in math functions (#222)
Co-authored-by: tsunyoku <mbruhyo@gmail.com>
2022-09-20 08:26:38 +01:00
James
782a5d4be6
Add crypto::bcrypt::generate and crypto::bcrypt::compare functions (#224) 2022-09-20 08:14:58 +01:00
Tobie Morgan Hitchcock
0381b6dad2 Simplify SCHEMAFUL and SCHEMAFULL parsing definitions
Closes #220
2022-09-20 08:11:14 +01:00
Tobie Morgan Hitchcock
d6b544771f Rename function for simplicity 2022-09-19 12:28:41 +01:00
Tobie Morgan Hitchcock
70970862f4 Add meta::id() and meta::tb() functions 2022-09-19 03:57:06 +01:00
Sven Taute
94dc566d3f
Fix bug in time::month() (#215) 2022-09-19 02:35:54 +01:00
Tobie Morgan Hitchcock
340af01227 Ensure is::uuid() function returns expected result
Closes #210
2022-09-18 17:44:14 +01:00
Tobie Morgan Hitchcock
2bc44af8cd Add session::token() function for retrieving authentication token claims data 2022-09-17 03:05:23 +01:00
Tobie Morgan Hitchcock
0d4d2359d4 Add $token variable for retrieving authentication token claims data 2022-09-17 03:05:23 +01:00
Tobie Morgan Hitchcock
a7444a7c8e Add authentication token claims data to session object
Closes #135
2022-09-17 03:05:23 +01:00
Tobie Morgan Hitchcock
4c98717f1d Update Rust code comments 2022-09-17 03:05:23 +01:00
Stephen Gilboy
63d8034a60
Return permissions error when automatically creating a table without authorization (#178)
Closes #177
2022-09-17 03:05:02 +01:00
Tobie Morgan Hitchcock
6a3b1d99b5 Ensure Record IDs are parsed as integers consistently
Closes #149
2022-09-14 23:40:19 +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
f9645e3d55 Ensure size of Error type is correctly tracked 2022-09-10 06:16:14 +01:00
Tobie Morgan Hitchcock
fde0c55d34 Improve error logging for field and index errors
Closes #113
2022-09-10 05:59:08 +01:00
Tobie Morgan Hitchcock
3b41217423 Allow switching to current namespace when authenticated as a database user 2022-09-10 05:45:02 +01:00
Tobie Morgan Hitchcock
10f01f365f Add session::sd() SQL function for retrieving session auth data 2022-09-05 00:57:09 +01:00
Tobie Morgan Hitchcock
491806aa75 Add scope data to $session object 2022-09-05 00:55:51 +01:00
Tobie Morgan Hitchcock
82e347027d Enable support for dynamic expressions in record IDs 2022-09-04 10:52:01 +01:00
Tobie Morgan Hitchcock
0e2b134de2 Add test for range queries with integer record IDs 2022-09-04 10:51:26 +01:00
Tobie Morgan Hitchcock
820b49c3d1 Allow PERMISSIONS clauses to be separated by commas or spaces
Closes #102
2022-09-04 10:51:06 +01:00
Finn Bear
3d83f086a6
Fix unbounded resource usage in crypto and rand SQL functions (#94) 2022-09-02 16:19:01 +01:00
Tobie Morgan Hitchcock
93dedd4869 Fix SQL Geometry type serialization and output
Closes #93
2022-09-02 11:32:34 +01:00
Rushmore Mushambi
04831b1831
Make validation and parser functions more robust (#89)
Closes #87
2022-09-01 18:46:36 +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
Finn Bear
8f6d21c1fc
Refactor and optimize functions and Value operators (#80) 2022-09-01 01:27:52 +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
395d8e5b8c Ensure arrays sort before objects in Record IDs 2022-08-31 14:38:14 +01:00
Finn Bear
8907f0aa14
Make RocksDB integration more, if not completely, sound (#77)
Closes #76
2022-08-31 14:18:23 +01:00
Finn Bear
a9c6806745
Ensure integer ranges are parsed correctly (#81) 2022-08-31 14:00:43 +01:00
Tobie Morgan Hitchcock
906b969b90 Don’t use writeable TiKV transactions when we don’t need to 2022-08-30 22:35:29 +01:00
Tobie Morgan Hitchcock
58591f82dc Ensure we use the correct transaction type (optimistic/pessimistic)
Closes #79
2022-08-30 22:34:55 +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
b9fc84bf18 Prevent panics when remote datastore transactions fail to start 2022-08-29 13:20:30 +01:00
Tobie Morgan Hitchcock
f22d5d3e51 Ensure read-only transactions are cancelled when complete 2022-08-29 12:29:38 +01:00
Tobie Morgan Hitchcock
8d08c34ddf Add support for writeable queries in LET SQL statements 2022-08-29 12:29:10 +01:00
Finn Bear
b18b3cef3e
Refactor, optimization, and cleanup of code (#71) 2022-08-29 02:47:33 +01:00
Finn Bear
42d8260966
Ensure string::words SQL function handles multiple spaces correctly (#72) 2022-08-29 02:46:15 +01:00
Tobie Morgan Hitchcock
f8535b0546 Remove redundant clone 2022-08-29 00:06:24 +01:00
Tobie Morgan Hitchcock
c1a1eba8b5 Add support for Record ID ranges
Closes #66
2022-08-28 23:31:57 +01:00
Tobie Morgan Hitchcock
e6d3c1e977 Add initial RocksDB storage implementation 2022-08-28 14:35:30 +01:00
Tobie Morgan Hitchcock
c0217078f5 Improve documentation of Rust crate 2022-08-28 14:08:08 +01:00
Finn Bear
3043538fdf
Accept Record IDs in type::table() SQL function (#69)
Closes #68
2022-08-28 10:46:20 +01:00
Tobie Morgan Hitchcock
48e0380dbe Ensure math::sum() returns a number when being called on a non-array value
Closes #65
2022-08-27 01:02:29 +01:00
Tobie Morgan Hitchcock
e4a7ef4afe Add parser tests for complex Record IDs 2022-08-27 00:33:52 +01:00
Tobie Morgan Hitchcock
eab862b9e4 Add support for Objects and Arrays as Record IDs 2022-08-27 00:23:24 +01:00
Tobie Morgan Hitchcock
56d3b0e861 Fix bug where records couldn’t be updated after defining an index
Closes #57
2022-08-25 14:50:11 +01:00
Tobie Morgan Hitchcock
0519ca60bc Return an error if the specified datastore is not able to be initiated 2022-08-21 20:28:54 +01:00
Kian-Meng Ang
40157f6170
Fix typos (#42)
Found via `codespell -L crate,inout,ser,fetchs,te,tre,whats`.
2022-08-21 13:13:38 +01:00
Tobie Morgan Hitchcock
c10865bda5 Simplify toString function in JavaScript classes 2022-08-19 16:10:16 +01:00
Tobie Morgan Hitchcock
5f1156341c Store JavaScript classes in separate directory 2022-08-19 16:08:30 +01:00
Tobie Morgan Hitchcock
292d35280c Use default export as main JavaScript function 2022-08-18 08:33:21 +01:00
Tobie Morgan Hitchcock
500368958f Ensure errors are caught when defining JavaScript classes 2022-08-17 23:00:53 +01:00
Tobie Morgan Hitchcock
9c0fbf51f9 Remove JavaScript global surrealdb placeholder package 2022-08-17 22:50:19 +01:00
Tobie Morgan Hitchcock
890f2f527f Add a placeholder for JavaScript fetch() function 2022-08-17 22:46:45 +01:00
Tobie Morgan Hitchcock
35010b21ae Simplify casting function signatures 2022-08-17 22:45:31 +01:00
Tobie Morgan Hitchcock
bcaea757c2 Add SQL session functions 2022-08-17 22:45:31 +01:00
Tobie Morgan Hitchcock
2945b7d724 Separate out synchronous and asynchronous SQL functions 2022-08-17 22:45:31 +01:00
Tobie Morgan Hitchcock
038246f054 Ensure JavaScript functions are not converted to empty objects 2022-08-16 19:27:59 +01:00
Yusuke Kuoka
1d3880d652
Initial implementation of SurrealDB KVS for FoundationDB (#37)
Referenced in discussion #25 

Closes #38
2022-08-15 19:35:41 +01:00
Tobie Morgan Hitchcock
d73b19a84c Fix linting errors in Rust 1.63.0 2022-08-12 17:42:01 +01:00
Tobie Morgan Hitchcock
13d3d02dcf Add SQL array sorting functions 2022-08-11 17:41:20 +01:00
Tobie Morgan Hitchcock
2ffa71d520 Ensure aliased field is output when fetching a multi-yield expressions with final alias
Closes #28
2022-08-10 17:49:32 +01:00
Tobie Morgan Hitchcock
20a6ed88d3 Ensure multi-yield path expression alias outputs are flattened
Closes #27
2022-08-10 17:49:32 +01:00
Tobie Morgan Hitchcock
405a1e7b8d Ensure http SQL functions run correctly in WebAssembly 2022-08-10 17:49:32 +01:00
Tobie Morgan Hitchcock
af45b33fa0 Return error when selecting from non-existent table in strict mode
Closes #13
2022-08-10 17:49:32 +01:00
Tobie Morgan Hitchcock
bac8aa31a3 Implement config definition caching within a transaction
Closes #21
2022-08-08 20:44:35 +01:00
Tobie Morgan Hitchcock
863830cf3f Ensure FIELD definitions are not output two in SQL export
CLoses #16
2022-08-05 15:46:49 +01:00
Tobie Morgan Hitchcock
96225afb44 Allow multiple table types in DEFINE FIELD record definition
Closes #15
2022-08-04 16:12:04 +01:00
Tobie Morgan Hitchcock
1869e1ddbc Allow spacing in DEFINE FIELD … TYPE clause 2022-08-04 15:11:50 +01:00
Tobie Morgan Hitchcock
f970809030 Fix deletion of embedded array fields using flat path style 2022-08-02 03:12:03 +01:00
Tobie Morgan Hitchcock
3c57496655 Ensure aliased GROUP BY fields are output correctly 2022-07-30 22:57:30 +01:00
Tobie Morgan Hitchcock
c8cba2c64d Remove VOID type 2022-07-28 21:54:59 +01:00
Tobie Morgan Hitchcock
89baebbd24 Fix DEFINE INDEX UNIQUE statement parsing 2022-07-28 20:27:39 +01:00
Tobie Morgan Hitchcock
54f7395555 Add initial integration tests 2022-07-28 10:00:06 +01:00
Tobie Morgan Hitchcock
078d3d4868 Ensure field values are set even if the field is not specified 2022-07-28 09:42:04 +01:00
Tobie Morgan Hitchcock
d619633340 Enable new database strict mode configuration 2022-07-27 18:20:04 +01:00
Tobie Morgan Hitchcock
f633769b57 Fix linter warnings when using as external library 2022-07-27 14:13:30 +01:00
Tobie Morgan Hitchcock
d6269bbe3d Ensure http module only builds when feature is enabled 2022-07-27 09:15:35 +01:00
Tobie Morgan Hitchcock
6d36aa0b2c Default TABLE permissions are now NONE not FULL 2022-07-27 09:15:35 +01:00
Tobie Morgan Hitchcock
a2c5ea237b Fix bug when defining NS / DB without first selecting NS / DB
Closes #12
2022-07-26 10:06:33 +01:00
Tobie Morgan Hitchcock
db3115fc7c Add surrealdb module as a global object in JavaScript runtime 2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
3dc29e1228 Add initial ES6 JavaScript modules implementation with ‘os’ module 2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
d647e40d49 Define main embedded function script as a JavaScript module 2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
66946397ed Use function() {} instead of fn::future -> () => {} syntax for SQL embedded functions
Closes #8
2022-07-24 01:15:26 +01:00