Commit graph

193 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
1ed5df005e Implement SQL Strand as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
ed92fb4d85 Implement SQL Ident as a newtype tuple struct 2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
3233660037 Implement SQL Table as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
1dd3095783 Implement SQL Timeout as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
42fa91c7bd Implement SQL Script as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
1f05b32f93 Implement SQL Param as a newtype tuple struct 2022-05-05 10:24:46 +01:00
Tobie Morgan Hitchcock
bd6f01971f Implement SQL Query as a newtype tuple struct 2022-05-05 10:19:19 +01:00
Tobie Morgan Hitchcock
643592d750 Implement SQL Split as a newtype tuple struct 2022-05-05 10:19:19 +01:00
Tobie Morgan Hitchcock
b6cc3ca1ff Implement SQL Fetch as a newtype tuple struct 2022-05-05 10:19:19 +01:00
Tobie Morgan Hitchcock
745fa4fd97 Implement SQL Group as a newtype tuple struct 2022-05-05 10:19:05 +01:00
Tobie Morgan Hitchcock
ec6cfc4fef Ensure TIMEOUT clauses are processed correctly 2022-05-04 23:37:57 +01:00
Tobie Morgan Hitchcock
143da56728 Implement SQL Array as a newtype tuple struct 2022-05-04 23:37:57 +01:00
Tobie Morgan Hitchcock
3ee1ddb5b1 Implement SQL Object as a newtype tuple struct 2022-05-04 23:37:15 +01:00
Tobie Morgan Hitchcock
5182359813 Improve doc comments on error variants 2022-05-04 12:41:34 +01:00
Tobie Morgan Hitchcock
896e384b98 Change method name so it doesn’t conflict with std::ops::Add::add 2022-05-04 11:34:17 +01:00
Tobie Morgan Hitchcock
f33031ca6b Ensure doc tests compile successfully 2022-05-04 10:11:51 +01:00
Tobie Morgan Hitchcock
c5960a028e Improve comments in public library package 2022-05-04 00:49:38 +01:00
Tobie Morgan Hitchcock
65d0e3138a Ensure all necessary SQL types are publicly exported 2022-05-04 00:13:37 +01:00
Tobie Morgan Hitchcock
ffc3ed82f7 Simplify external API when working with Datastore 2022-05-04 00:07:46 +01:00
Tobie Morgan Hitchcock
6a8c53b51e Don’t use custom type definition for query responses 2022-05-03 17:47:47 +01:00
Tobie Morgan Hitchcock
01ab9375a3 Remove duplicate SQL string::substr() function 2022-05-02 23:22:22 +01:00
Tobie Morgan Hitchcock
0cbcb3b374 Simplify database query response object 2022-05-02 00:35:01 +01:00
Tobie Morgan Hitchcock
a4e07f693b Make certain functions private to crate 2022-05-01 23:25:53 +01:00
Tobie Morgan Hitchcock
1697beda9c No need to store the actual error on the executor 2022-05-01 10:35:26 +01:00
Tobie Morgan Hitchcock
d5fab4fbf0 Remove string::contains() SQL function 2022-04-30 21:47:19 +01:00
Tobie Morgan Hitchcock
355f1aac7b Don’t override context unnecessarily 2022-04-29 21:43:44 +01:00
Tobie Morgan Hitchcock
6f93c38cd2 Add SQL OUTSIDE operator for geometry types 2022-04-29 21:41:57 +01:00
Tobie Morgan Hitchcock
fb27185435 Remove unused import 2022-04-29 21:40:02 +01:00
Tobie Morgan Hitchcock
f5be6a3227 Remove unused time functions 2022-04-28 23:31:51 +01:00
Tobie Morgan Hitchcock
4c8d9dbb63 implement COLLATE and NUMERIC ordering in ORDER BY clauses 2022-04-27 16:21:51 +01:00
Tobie Morgan Hitchcock
4bc3b299aa Implement RAND() ordering in ORDER BY clauses 2022-04-27 02:30:26 +01:00
Tobie Morgan Hitchcock
e6fe7e675b Fix BEGIN / CANCEL / COMMIT full statements 2022-04-27 02:29:32 +01:00
Tobie Morgan Hitchcock
4275f93c57 Ensure random times are generated correctly 2022-04-24 12:03:17 +01:00
Tobie Morgan Hitchcock
8e283ecaeb Only check fields if the document is a table record 2022-04-13 18:31:28 +01:00
Tobie Morgan Hitchcock
cbdba0a117 Implement INDEX clauses 2022-04-09 13:33:39 +01:00
Tobie Morgan Hitchcock
f958eea305 Fix typo in ixdb key-value store implementation 2022-04-09 10:08:51 +01:00
Tobie Morgan Hitchcock
a41e52098b Improve performance of internal value conversion 2022-04-07 15:44:55 +01:00
Tobie Morgan Hitchcock
27a01bec08 Improve performance of embedded field path creation 2022-04-07 15:33:57 +01:00
Tobie Morgan Hitchcock
c4386f1549 Process PERMISSIONS clauses on document fields 2022-04-07 11:21:18 +01:00
Tobie Morgan Hitchcock
6b6d4f65f9 Process document fields correctly 2022-04-07 11:21:18 +01:00
Tobie Morgan Hitchcock
e378105f11 Add ‘every’ function on a value for field iteration 2022-04-07 11:21:18 +01:00
Tobie Morgan Hitchcock
9becf187f4 Add ‘each’ function on a value for field iteration 2022-04-07 11:12:10 +01:00
Tobie Morgan Hitchcock
285b83244c Remove PRIORITY clause from DEFINE FIELD statement 2022-04-07 08:38:47 +01:00
Tobie Morgan Hitchcock
2a0c8ddb4a Move duplicate code into dedicated functions 2022-04-07 08:35:39 +01:00
Tobie Morgan Hitchcock
f6b47d381b Ensure WHERE conditions are computed correctly 2022-04-06 20:28:16 +01:00
Tobie Morgan Hitchcock
2b89702490 Improve code comments 2022-04-06 20:15:56 +01:00
Tobie Morgan Hitchcock
2e2756d9e8 Implement INFO sql statements 2022-04-06 12:06:33 +01:00
Tobie Morgan Hitchcock
cf20cd4396 Treat $this param as a special case 2022-04-06 00:11:33 +01:00
Tobie Morgan Hitchcock
892fc99527 Implement EVENT clauses 2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
5df1040dd8 Implement PERMISSIONS clauses 2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
200741a35e Simplify &self in function definitions 2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
c1a128e7ab No need to clone key when fetching value on context 2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
aab4d0b096 Implement FIELD TYPE / VALUE / ASSERT clauses 2022-04-06 00:09:23 +01:00
Tobie Morgan Hitchcock
8980929a3c Ignore any errors when adding default NS / DB / TB 2022-04-04 23:24:39 +01:00
Tobie Morgan Hitchcock
64eedd413f Use consistent coding style 2022-04-04 23:23:31 +01:00
Tobie Morgan Hitchcock
b85e983ce7 Improve database TYPE clause definitions 2022-04-04 22:43:10 +01:00
Tobie Morgan Hitchcock
876a1e581e Simplify permissions definition and types 2022-04-04 22:37:16 +01:00
Tobie Morgan Hitchcock
664260ef0d Enable internal conversion between values 2022-04-04 22:34:46 +01:00
Tobie Morgan Hitchcock
2b7a23c569 Make DEFINE TABLE and DEFINE FIELD permissions FULL by default 2022-04-04 20:05:50 +01:00
Tobie Morgan Hitchcock
1d66a4772d Ensure correct ordering of values in datastore 2022-04-04 16:59:42 +01:00
Tobie Morgan Hitchcock
fd4752aff4 Add putc + delc functions for conditional put / del in kv store 2022-04-04 16:59:20 +01:00
Tobie Morgan Hitchcock
0df347732d Finish implementation of record storing / purging 2022-04-02 13:25:42 +01:00
Tobie Morgan Hitchcock
099e1d17ff Add common methods on document type 2022-04-02 13:23:45 +01:00
Tobie Morgan Hitchcock
b02ee12aaa Make code more legible 2022-04-02 13:22:53 +01:00
Tobie Morgan Hitchcock
94ffc054a7 Fix clippy warnings 2022-04-01 23:28:54 +01:00
Tobie Morgan Hitchcock
d6aadfecac Fix bug with datastore key bytes 2022-04-01 23:23:54 +01:00
Tobie Morgan Hitchcock
61c85e1c0f Only include parallel functions when enabled 2022-04-01 23:22:35 +01:00
Tobie Morgan Hitchcock
f3ade9b9d8 Update 3rd party dependencies 2022-04-01 22:06:03 +01:00
Tobie Morgan Hitchcock
2bf5075dc4 Fix bug with DEFINE and PERMISSIONS statement formatting 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
c45d383b77 Change name of OPTION statement options 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
c6c43aea8a Ensure OPTION IMPORT statement has opposite effect 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
4dea5c72ee Improve common function execution speed by inlining 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
bf1a833a79 Don’t set meta field on records 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
41c44ea709 Add runtime option for disabling permission checks 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
1ea692d32e Make code more consistent and simpler to read 2022-04-01 12:23:49 +01:00
Tobie Morgan Hitchcock
a938f017c4 Only allow OPTION statements to be run with KV/NS/DB auth levels 2022-04-01 09:20:44 +01:00
Tobie Morgan Hitchcock
7e51401ebb Make code more concise and simpler to read 2022-04-01 00:40:16 +01:00
Tobie Morgan Hitchcock
7e2eae32c5 Ensure query auth level checks are logically correct 2022-04-01 00:36:23 +01:00
Tobie Morgan Hitchcock
c57c313c47 Add function for checking if record already exists 2022-04-01 00:35:35 +01:00
Tobie Morgan Hitchcock
9f7527c01a Make simple value fetching functions synchronous 2022-03-25 21:15:55 +00:00
Tobie Morgan Hitchcock
2f033aa996 Remove unused functionality 2022-03-25 21:11:17 +00:00
Tobie Morgan Hitchcock
b3c4f982ec Fix clippy lint errors 2022-03-25 20:31:45 +00:00
Tobie Morgan Hitchcock
e92134c92d Ensure we can retrieve subsequent object fields 2022-03-25 18:45:14 +00:00
Tobie Morgan Hitchcock
87840e3e05 Implement GROUP BY clauses 2022-03-25 18:43:36 +00:00
Tobie Morgan Hitchcock
c2c25f68cf Change array manipulation function workings 2022-03-24 13:03:15 +00:00
Tobie Morgan Hitchcock
7e4bf91a48 Forbid all usage of unsafe code 2022-03-23 15:12:29 +00:00
Tobie Morgan Hitchcock
6017d424eb Implement FETCH clauses 2022-03-23 14:02:41 +00:00
Tobie Morgan Hitchcock
4c95db254a Add datastore key type for graph edges 2022-03-23 14:02:41 +00:00
Tobie Morgan Hitchcock
f674ea0544 Implement ORDER BY clauses 2022-03-23 14:02:41 +00:00
Tobie Morgan Hitchcock
3370b20c38 Only allow simple fields for SPLIT, ORDER, and GROUP clauses 2022-03-23 14:02:03 +00:00
Tobie Morgan Hitchcock
652195032c Implement SPLIT ON clauses 2022-03-23 14:02:02 +00:00
Tobie Morgan Hitchcock
0b3f4c5765 Prevent usize overflow when no records found 2022-03-23 12:05:50 +00:00
Tobie Morgan Hitchcock
5ae5046987 Implement REMOVE statements 2022-03-20 14:27:59 +00:00
Tobie Morgan Hitchcock
9778600304 Ensure all index data is removed when defining an index 2022-03-20 14:27:03 +00:00
Tobie Morgan Hitchcock
cb740dfcb0 Ensure transaction does not deadlock in DEFINE statements 2022-03-20 14:26:31 +00:00
Tobie Morgan Hitchcock
f8b747374f Pass the current statement to the value iterator functions 2022-03-18 19:51:13 +00:00
Tobie Morgan Hitchcock
5b1d727c25 Enable fetching WHERE clause from statement in iterator 2022-03-18 19:50:47 +00:00
Tobie Morgan Hitchcock
24752a75d9 Enable support for numbers and strings in record ids 2022-03-18 07:24:36 +00:00
Tobie Morgan Hitchcock
364412b437 Improve datastore key creation functionality 2022-03-18 07:21:22 +00:00
Tobie Morgan Hitchcock
f509b88109 Ensure upper range is included in a |test:1..10| model 2022-03-17 22:26:34 +00:00