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
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
81bad3211d
Improve command-line logging
2022-07-19 09:28:24 +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
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
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
527361efd4
Ensure script function is asynchronous
2022-07-04 01:25:35 +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
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
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
Tobie Morgan Hitchcock
75de89d9a1
Add support for both writeable and read-only transactions
2022-05-14 22:30:49 +01:00
Tobie Morgan Hitchcock
1017e2fffb
Don’t clone variables when processing sub-contexts
...
Closes SUR-53
When creating a new context for subqueries or statement clauses, we used to have to clone any variables/values, and freeze the context, so that it could be used across threads and async boundaries.
Now with the new executor pattern for parallel queries, we can pass references instead, improving performance by removing unnecessary cloning of values.
2022-05-14 13:38:17 +01:00
Tobie Morgan Hitchcock
4740fa7bb1
Only set constant variable when needed with parallel feature
2022-05-13 22:00:51 +01:00
Tobie Morgan Hitchcock
7bd5802e99
Remove tokio as a dependency
...
Closes SUR-102
2022-05-13 21:57:40 +01:00
Tobie Morgan Hitchcock
6ff2a78c88
Don’t use static futures for parallel query execution
...
Instead of using static futures when processing a query in parallel, we now use a new executor model, which allows us to process futures which make use of references. As a result, we can remove the need to store each statement in an Arc.
2022-05-13 21:57:40 +01:00
Tobie Morgan Hitchcock
d29961ee19
Ensure Errors can be converted into Strings
2022-05-11 21:43:11 +01:00
Tobie Morgan Hitchcock
ca80e73285
Fix clippy lint warnings
2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
17e8ea55b5
Implement SQL database exporting and importing
2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
3498e57e04
Implement web authentication session validation
2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
cc40e26e3f
Add additional functions on Auth type for validating authentication
2022-05-11 15:23:07 +01:00
Tobie Morgan Hitchcock
640c0b0b12
Allow for alternative phrasing in DEFINE FIELD clause
2022-05-09 23:24:42 +01:00
Tobie Morgan Hitchcock
43d361646c
Ensure value mem size test passes correctly
2022-05-09 08:19:01 +01:00
Tobie Morgan Hitchcock
a03d5a7551
Implement SQL Regex as a newtype tuple struct
2022-05-07 14:57:14 +01:00
Tobie Morgan Hitchcock
79e9269f14
Add value size checks tests
2022-05-06 23:33:19 +01:00
Tobie Morgan Hitchcock
fc2c48647c
Allow large enum variant size for Datastore and Transaction
2022-05-06 23:09:49 +01:00
Tobie Morgan Hitchcock
5921a6b632
Fix module_inception clippy lint warning
2022-05-06 23:09:32 +01:00
Tobie Morgan Hitchcock
1e2ba72e37
Reduce mem size of Error enum types
2022-05-06 23:09:08 +01:00
Tobie Morgan Hitchcock
2239e4becf
Improve Datastore and Transaction errors
2022-05-06 21:57:12 +01:00
Tobie Morgan Hitchcock
4d072a7f6c
Reduce mem size of SQL Model by converting to an enum
2022-05-06 17:02:44 +01:00
Tobie Morgan Hitchcock
0125cb28b0
Implement Deref on SQL Order type
2022-05-05 12:27:08 +01:00
Tobie Morgan Hitchcock
89f731c903
Implement SQL Idiom as a newtype tuple struct
2022-05-05 12:26:46 +01:00
Tobie Morgan Hitchcock
683039e08f
Don’t duplicate methods on items which implement Deref
2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
4824f1b627
Enable multi duration types (1d12h30m) in SQL
2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
98fc9055af
Implement SQL Duration as a newtype tuple struct
2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
10f2911d44
Implement SQL Datetime as a newtype tuple struct
2022-05-05 10:24:52 +01:00
Tobie Morgan Hitchcock
0a3fe67358
Implement SQL Cond as a newtype tuple struct
2022-05-05 10:24:52 +01:00
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
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
Tobie Morgan Hitchcock
73df91a438
Use BigDecimal for large number handling
2022-03-17 21:55:32 +00:00
Tobie Morgan Hitchcock
5d554d07d3
Use char instead of str for parsing where possible
2022-03-16 23:53:31 +00:00
Tobie Morgan Hitchcock
97c0e50654
Parse numbers as either integers or decimals
2022-03-16 23:19:50 +00:00
Tobie Morgan Hitchcock
636eee4a25
Don’t treat all numbers as decimals unless necessary
2022-03-16 21:15:13 +00:00
Tobie Morgan Hitchcock
dc2b436131
Simplify common number parsing
2022-03-16 21:04:22 +00:00
Tobie Morgan Hitchcock
f13aafe576
Ensure numbers are parsed inside (bracket expressions)
2022-03-16 20:49:26 +00:00
Tobie Morgan Hitchcock
60c05ee082
Use hexadecimal u8 values when altering datastore keys
2022-03-16 17:01:25 +00:00
Tobie Morgan Hitchcock
336b2b92fc
Fix failing build
2022-03-16 16:27:13 +00:00
Tobie Morgan Hitchcock
1b0477ae29
Ensure numbers are parsed properly
...
This change fixes a bug where `100test` would be parsed as a number, and the parser would subsequently fail. Now the value is only parsed as a number if it is immediately followed by an allowed character - otherwise it will fail, and the value `100test` will be parsed as an ident instead.
2022-03-16 15:50:08 +00:00
Tobie Morgan Hitchcock
232b35a304
Ensure numbers do not overflow numeric bounds
2022-03-16 15:40:26 +00:00
Tobie Morgan Hitchcock
cdef111786
Use u8 instead of char for datastpre key separators
2022-03-16 15:33:43 +00:00
Tobie Morgan Hitchcock
ba8dd7bd12
Use external storekey library for key encoding
2022-03-16 14:45:55 +00:00
Tobie Morgan Hitchcock
5781352058
Remove unused macros
2022-03-15 08:34:40 +00:00
Tobie Morgan Hitchcock
03af33796a
Fix arithmetic and boolean binary expression order
...
Previously the expression operations happened right-to-left so `1 - 2 - 3 - 4 - 5` was actually calculated as `(1 - (2 - (3 - (4 - (5)))))`. Now the expressions are calculated according to BODMAS, with boolean expressions calculated last.
2022-03-13 00:18:23 +00:00
Tobie Morgan Hitchcock
0f6d700f6b
Implement initial logic for DEFINE statements
2022-03-07 18:15:57 +00:00
Tobie Morgan Hitchcock
64c02896dd
Implement record storing and fetching
2022-03-07 18:11:44 +00:00
Tobie Morgan Hitchcock
438b1d759c
Simplify datastore keys
2022-03-07 18:10:44 +00:00
Tobie Morgan Hitchcock
77844ab06b
Convert error names according to clippy recommendations
2022-03-06 22:21:37 +00:00
Tobie Morgan Hitchcock
d1c2daaee4
Apply cargo clippy lint recommendations
2022-03-05 14:42:58 +00:00
Tobie Morgan Hitchcock
3154dc7bc8
Remove example usage in comments
2022-03-04 12:15:43 +00:00
Tobie Morgan Hitchcock
38c7ae206e
Enable parallel iteration of records
2022-02-27 00:01:19 +00:00
Tobie Morgan Hitchcock
16da3e9b3b
Improve performance of function processing
2022-02-26 20:25:07 +00:00
Tobie Morgan Hitchcock
ec698e85de
Add keyword to queries for PARALLEL execution
2022-02-26 16:53:38 +00:00
Tobie Morgan Hitchcock
cd545c2edd
Remove unused code
2022-02-26 15:09:30 +00:00
Tobie Morgan Hitchcock
b12a76c2ae
Return &str instead of &String values
2022-02-26 00:35:11 +00:00
Tobie Morgan Hitchcock
63113f83c3
Ensure types can be serialized/deserialized to the datastore
2022-02-26 00:34:05 +00:00
Tobie Morgan Hitchcock
10c0b5c732
Check the context before processing values
2022-02-25 22:42:14 +00:00
Tobie Morgan Hitchcock
50e026f859
Remove unused datastore key
2022-02-25 16:53:17 +00:00
Tobie Morgan Hitchcock
f74a619474
Rename NU to NL and DU to DL for database keys
2022-02-23 17:15:49 +00:00
Tobie Morgan Hitchcock
1eddf94e8d
Improve code and logic in iterator
2022-02-23 13:56:54 +00:00
Tobie Morgan Hitchcock
73879706a6
Improve debug and trace logging
2022-02-23 13:29:29 +00:00
Tobie Morgan Hitchcock
7f47fad02b
Remove unimplemented script parsing functionality
2022-02-23 13:20:00 +00:00
Tobie Morgan Hitchcock
02d7154189
No need for explicit references
2022-02-23 11:21:06 +00:00
Tobie Morgan Hitchcock
7710451d7b
Remove serde serialization field skipping
...
Due to a bug in msgpack-rust (https://github.com/3Hren/msgpack-rust/issues/86 ), in order to have correct serialization<->deserialization of data, we need to ensure all fields are serialized even when empty. This will affect the output size of the data, but will ensure that once serialized, the data is deserialized without issue.
2022-02-23 11:18:46 +00:00
Tobie Morgan Hitchcock
19909885e9
Remove old code comments
2022-02-22 19:08:40 +00:00
Tobie Morgan Hitchcock
7d5dc66555
Ensure we parse datetimes and durations in JSON requests
2022-02-22 19:08:22 +00:00
Tobie Morgan Hitchcock
d4566ff6ea
Improve performance with query path analysis
...
Instead of creating a new Vec<_> for every embedded path part, we now use a reference when calling get/set/del on a value’s data. This means we aren’t creating and copying the Vec items each and every time we traverse down a path.
2022-02-22 19:05:58 +00:00
Tobie Morgan Hitchcock
cf707bf5e3
Remove crypto::bcrypt functions
2022-02-22 16:34:09 +00:00
Tobie Morgan Hitchcock
c28057f8ef
Allow flat query expressions
...
Instead of having to specify [*] or * to get/set/del values in embedded arrays, it now supports access embedded values using a flat style for arrays.
2022-02-22 16:33:43 +00:00
Tobie Morgan Hitchcock
ca6974a5a8
Update code to remove geometry deprecation warnings
2022-02-22 16:30:02 +00:00
Tobie Morgan Hitchcock
d5c53b7791
Extract core surrealdb code into separate library
2022-02-22 14:16:50 +00:00