Commit graph

422 commits

Author SHA1 Message Date
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
21fd5b8868 Enable separation and selection of features when building 2022-08-26 22:41:41 +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
aca9cb6c34 Update 3rd party dependencies 2022-08-23 23:52:43 +01:00
Tobie Morgan Hitchcock
89915f9a62 Improve the instructions for running with Docker 2022-08-23 11:38:36 +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
28f66f4127 Update readme file for Crates.io 2022-08-20 11:30:50 +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
d6de09bd0a Update 3rd party dependencies 2022-08-17 22:45:31 +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
68f1b014a9 Release 1.0.0-beta.6 2022-08-13 01:43:23 +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
33ab50b541 Update 3rd party dependencies 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
367fa6b33b Add documentation link to crates.io 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
3ab94a5abf Release 1.0.0-beta.5 2022-08-01 10:28:43 +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
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
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
57caaff01d Release 1.0.0-beta.4 2022-07-28 10:00:54 +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
233a56287b Release 1.0.0-beta.3 2022-07-24 01:36:49 +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
Tobie Morgan Hitchcock
a71562df9f Use <future> instead of fn::future syntax for SQL futures
Closes #9
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
e9476b9f85 Add ability to handle quickjs errors ourselves 2022-07-24 01:15:25 +01:00
Tobie Morgan Hitchcock
5c0a0ca556 Add ability to specify durations with years 2022-07-23 20:28:52 +01:00
Tobie Morgan Hitchcock
667b43655d Release 1.0.0-beta.2 2022-07-19 23:29:21 +01:00
Tobie Morgan Hitchcock
81bad3211d Improve command-line logging 2022-07-19 09:28:24 +01:00
Tobie Morgan Hitchcock
97159203e1 Update crates.io package metadata 2022-07-19 01:37:56 +01:00
Tobie Morgan Hitchcock
bbd557e0c0 Update 3rd party dependencies 2022-07-19 00:14:46 +01:00
Tobie Morgan Hitchcock
8a90139fe3 Ensure correct version is specified in Cargo.toml files 2022-07-19 00:09:06 +01:00
Tobie Morgan Hitchcock
eaedfbbb7c Add ability to use binary expressions in SQL SELECT statements 2022-07-18 22:10:00 +01:00
Tobie Morgan Hitchcock
0d05446976 Ensure TiKV transactions do not panic when a transaction is dropped 2022-07-18 18:56:08 +01:00
Tobie Morgan Hitchcock
c9ad4e60ce Implement http SQL functions 2022-07-17 19:58:27 +01:00
Tobie Morgan Hitchcock
31adc4538d Implement DEFINE TABLE AS foreign table statements 2022-07-16 23:24:04 +01:00
Tobie Morgan Hitchcock
0394fe5b90 Ensure temporary metadata is removed from records when output 2022-07-16 23:22:23 +01:00
Tobie Morgan Hitchcock
8dbbcf1885 Improve code comments 2022-07-16 23:21:45 +01:00
Tobie Morgan Hitchcock
c9a5b66d9c Ensure aggregate functions are computed in GROUP BY clauses 2022-07-16 23:20:50 +01:00
Tobie Morgan Hitchcock
c9d9b041f7 Simplify v.into() value conversion statements 2022-07-16 23:18:24 +01:00
Tobie Morgan Hitchcock
db7ed18119 Consolidate field expression code into single location 2022-07-10 23:11:28 +01:00
Tobie Morgan Hitchcock
b0bcecf5da Fix clippy warnings 2022-07-10 22:57:19 +01:00
Tobie Morgan Hitchcock
90dfa9f49f Ensure LIMIT BY clause does not cause query to fail 2022-07-09 19:44:15 +01:00
Tobie Morgan Hitchcock
29e500017d Ensure foreign table views are updated when redefined 2022-07-08 21:56:33 +01:00
Tobie Morgan Hitchcock
a430e89c1f Ensure values are parsed in the correct order 2022-07-08 10:19:01 +01:00
Tobie Morgan Hitchcock
41d7d2842d Update 3rd party dependencies 2022-07-07 11:37:02 +01:00
Tobie Morgan Hitchcock
4ab552a8e3 Allow PATCH clauses to accept parameters 2022-07-07 11:22:41 +01:00
Tobie Morgan Hitchcock
63d099e305 Fix code comment typo 2022-07-07 10:55:59 +01:00
Tobie Morgan Hitchcock
3417d152e0 Ensure PARALLEL clauses don’t run on WASM 2022-07-06 14:40:43 +01:00
Tobie Morgan Hitchcock
f73ecebba1 Remove unused dependency ‘utf-8’ 2022-07-06 14:40:33 +01:00
Tobie Morgan Hitchcock
338bf3e142 Switch from Boa to QuickJS for JavaScript runtime 2022-07-06 14:40:20 +01:00
Tobie Morgan Hitchcock
6ef120f7ce Ensure record ids are escaped properly in JSON format 2022-07-06 10:09:21 +01:00
Tobie Morgan Hitchcock
073c15b826 Escape record id parts like ⟨this⟩ rather than this 2022-07-06 10:08:11 +01:00
Tobie Morgan Hitchcock
2d076c79a7 Format SQL Durations as a string format 2022-07-05 11:36:10 +01:00
Tobie Morgan Hitchcock
6c5ddbf70f Ensure undefined fields are removed in schemafull mode 2022-07-04 17:54:43 +01:00
Tobie Morgan Hitchcock
59d7e733eb Ignore errors when automatically adding NS, DB, or TB definitions 2022-07-04 17:54:03 +01:00
Tobie Morgan Hitchcock
b575f3a9db Remove unused files 2022-07-04 17:54:03 +01:00
Tobie Morgan Hitchcock
8ebcff6d18 Ensure table is added if it does not exist
If the user is is creating a record in a table / collection that does not exist, and the user is authenticated with KV, NS, or DB level permissions, then we need to add the table with the default definition parameters.
2022-07-04 13:58:59 +01:00
Tobie Morgan Hitchcock
8ca211f96d Simplify SQL string::slug function implementation 2022-07-04 10:41:18 +01:00
Tobie Morgan Hitchcock
508538e0cc Add initial WebSocket JSON RPC implementation 2022-07-04 02:32:26 +01:00
Tobie Morgan Hitchcock
8dc7341cb1 Add functions on SQL Value for matching on type 2022-07-04 02:02:46 +01:00
Tobie Morgan Hitchcock
7af9daf159 Update 3rd party dependencies 2022-07-04 01:59:02 +01:00
Tobie Morgan Hitchcock
527361efd4 Ensure script function is asynchronous 2022-07-04 01:25:35 +01:00
Tobie Morgan Hitchcock
039d2fbd54 Use alphabetical ordering for Cargo.toml dependencies 2022-07-03 20:33:13 +01:00
Tobie Morgan Hitchcock
663848172e Simplify code for conversion between Boa and SurrealDB 2022-07-03 20:30:18 +01:00
Tobie Morgan Hitchcock
d0c37f4d66 Enable parsing of thing records inside strings
This allows for thing records to be parsed within JSON strings.
2022-07-03 20:28:30 +01:00
Tobie Morgan Hitchcock
0c86061086 Accept Thing as argument to type::thing SQL function 2022-07-03 19:22:12 +01:00
Tobie Morgan Hitchcock
bc16645d38 Ensure library build only includes specified features 2022-07-03 10:43:23 +01:00
Tobie Morgan Hitchcock
d5a6f80460 Ensure all operator keywords are one word only 2022-06-28 14:39:07 +01:00
Tobie Morgan Hitchcock
569182ee7b Implement LIVE and KILL statements 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
219f4a54ed Enable ability to pass arguments to JavaScript functions 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
3f4a144ef0 Ensure Date uses correct prototype in javascript functions 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
44f20d3740 Remove unnecessary public function definitions in sql module 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
34ba79428c Ensure correct permissions are used on each query 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
ccdce709f2 Add UUID data type to SQL for efficient storage of UUIDs 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
86c2285564 Fix output of SQL DEFINE SCOPE statement 2022-06-20 15:51:29 +01:00
Tobie Morgan Hitchcock
eff4d2c5e9 Implement scope signup and signin functionality 2022-06-20 12:29:06 +01:00
Tobie Morgan Hitchcock
b93b87f2a1 Remove unused CONNECT clause on DEFINE SCOPE statements 2022-06-20 12:28:05 +01:00
Tobie Morgan Hitchcock
951ca55b54 Add SQL Thing parsing functionality to external API 2022-06-20 12:26:43 +01:00
Tobie Morgan Hitchcock
0cb42d7283 Add functionality to compute sql value within database context 2022-06-20 12:26:27 +01:00
Tobie Morgan Hitchcock
b4e2082196 Use BTreeMap for database execution variables 2022-06-20 02:13:28 +01:00
Tobie Morgan Hitchcock
20c4e03446 Ensure graph edges are purged correctly when deleted 2022-06-17 23:55:09 +01:00
Tobie Morgan Hitchcock
27f011d13c Update 3rd party dependencies 2022-06-15 12:49:41 +01:00
Tobie Morgan Hitchcock
1f5acefa7c Only store empty value in datastore for record edges 2022-06-15 08:50:59 +01:00
Tobie Morgan Hitchcock
a687a7f4bf Ensure remote records in FETCH clauses are fetched correctly 2022-06-15 08:49:57 +01:00
Tobie Morgan Hitchcock
072b002593 Simplify datastore key serialization 2022-06-15 08:49:57 +01:00
Tobie Morgan Hitchcock
18cee9091a Only allow for single values in RELATE statements 2022-06-15 08:49:57 +01:00
Tobie Morgan Hitchcock
37a3efc81b Allow for spacing around subquery statements 2022-06-15 08:49:57 +01:00
Tobie Morgan Hitchcock
c0a78d8470 Implement graph traversal functionality 2022-06-15 08:49:57 +01:00
Tobie Morgan Hitchcock
8ce5d01727 Improve graph traversal expression parsing code 2022-06-08 19:50:29 +01:00
Tobie Morgan Hitchcock
1333ecf0df Use separate module for Dir type 2022-06-08 19:16:06 +01:00
Tobie Morgan Hitchcock
a8fa9ecfb7 Only support strings or integers for Record IDs 2022-06-08 08:39:09 +01:00
Tobie Morgan Hitchcock
2c97d65e97 Fix bug with graph traversal expression parsing 2022-06-06 00:35:44 +01:00
Tobie Morgan Hitchcock
91a859f6b0 Ensure Params are treated as Idioms 2022-06-05 22:15:12 +01:00
Tobie Morgan Hitchcock
8b4f300120 Add support for multi-yield graph traversal expressions 2022-06-04 09:55:05 +01:00
Tobie Morgan Hitchcock
a9bf09db1e Ensure edges are stored before indexes in RELATE statements 2022-06-02 09:07:28 +01:00
Tobie Morgan Hitchcock
525b02ca46 Ensure cast functions are output correctly as object keys 2022-06-01 10:50:07 +01:00
Tobie Morgan Hitchcock
bea90712a3 Enable ? operator in graph traversal queries 2022-05-31 21:30:56 +01:00
Tobie Morgan Hitchcock
4d9b3fd403 Ensure fields are not escaped when inserted as object keys 2022-05-31 20:47:02 +01:00
Tobie Morgan Hitchcock
3f568f3990 Simplify session conversion to database context 2022-05-31 19:00:32 +01:00
Tobie Morgan Hitchcock
01d21e1157 Implement INSERT and RELATE statements 2022-05-30 16:32:26 +01:00
Tobie Morgan Hitchcock
b37b027b60 Add ability to convert a record to another table 2022-05-30 16:21:38 +01:00
Tobie Morgan Hitchcock
9020618a0e Add IntoIterator trait to SQL Model type 2022-05-30 16:05:05 +01:00
Tobie Morgan Hitchcock
45c81ad02b Ensure all datastore keys encode correctly 2022-05-28 01:02:52 +01:00
Tobie Morgan Hitchcock
56f5f10046 Remove unnecessary std::convert::From implementations 2022-05-27 21:13:04 +01:00
Tobie Morgan Hitchcock
ea525648ae Remove unnecessary lifetime specifiers 2022-05-25 10:42:10 +01:00
Tobie Morgan Hitchcock
44df5a8621 Allow modification of documents from subquery result sets 2022-05-25 10:39:36 +01:00
Tobie Morgan Hitchcock
32525602e2 Ensure changed index values are calculated correctly 2022-05-23 13:24:38 +01:00
Tobie Morgan Hitchcock
61b1e547b6 Always use simplified serialization unless specified explicitly 2022-05-21 10:07:32 +01:00
Tobie Morgan Hitchcock
64ddd407ca Ensure correct trait is used in function definitions 2022-05-21 09:39:40 +01:00
Tobie Morgan Hitchcock
a78df680d2 Implement embedded javascript script functions 2022-05-21 09:39:40 +01:00
Tobie Morgan Hitchcock
5425d0b550 Enable $self or $this as special paramater names 2022-05-19 23:03:00 +01:00
Tobie Morgan Hitchcock
073285574a No need to surround statements with an Arc 2022-05-18 12:18:00 +01:00
Tobie Morgan Hitchcock
82cbfad38d Update 3rd party dependencies 2022-05-16 10:31:04 +01:00
Tobie Morgan Hitchcock
0edd707784 Only include executor crate with parallel feature 2022-05-16 10:28:47 +01:00
Tobie Morgan Hitchcock
52e8954ae4 Ensure library works in multi-threaded and single-threaded environments 2022-05-16 00:04:11 +01:00
Tobie Morgan Hitchcock
15fc4a0126 Ensure statements are properly escaped when output as a string 2022-05-15 09:42:32 +01:00