Commit graph

1045 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
b4dfaf2898 Don’t assert the value of a field type
Previously if a field had a type, and a value was entered which did not match that type, then an error was raised, even though the ASSERT clause was not set. Now the field will be set to nil if the field does not match the specified type, and the ASSERT clause can be used to ensure that a valid value is always entered.
2018-02-14 15:48:42 +00:00
Tobie Morgan Hitchcock
2249086887 Improve rpc authentication methods 2018-02-14 13:19:43 +00:00
Tobie Morgan Hitchcock
c47fe55ffb Ensure any previous auth data is reset if authentication fails 2018-02-14 13:17:05 +00:00
Tobie Morgan Hitchcock
31c7849643 No need to cast, incase the value is not set on the context 2018-02-14 13:15:56 +00:00
Tobie Morgan Hitchcock
76837325d0 Update 3rd party dependencies 2018-02-12 22:26:17 +00:00
Tobie Morgan Hitchcock
e073bf2775 Enable persistent request variables
It is now possible to set a variable on a connection, and use that variable in multiple subsequent queries. This ensures that websockets can make use of state variables for detecting logged-in, and non-logged-in clients.
2018-02-12 22:13:36 +00:00
Tobie Morgan Hitchcock
15e9f77434 Add Uniq() rpc method for crypto-secure rando ids 2018-02-12 21:50:19 +00:00
Tobie Morgan Hitchcock
779251bc54 Simplify auth data response on rpc requests
Ther is no need to return all auth data when caling the Info() and Auth(token) rpc functions. Instead only the id needs to be returned to the consuming application.
2018-02-12 21:48:55 +00:00
Tobie Morgan Hitchcock
1dba4e4c89 Add string genrator function to util/rand package 2018-02-12 21:38:08 +00:00
Tobie Morgan Hitchcock
926ef37234 LET and RETURN should not need SC level permissions 2018-02-12 15:38:34 +00:00
Tobie Morgan Hitchcock
9b0ef8d6d7 When clearing an index, remove all items 2018-02-12 09:05:52 +00:00
Tobie Morgan Hitchcock
bb8c623f88 Don’t use readonly transactions for mysql 2018-02-11 16:43:59 +00:00
Tobie Morgan Hitchcock
5c18ee20a7 Log errors which occur on the kvs layer 2018-02-11 16:43:49 +00:00
Tobie Morgan Hitchcock
8b508b09c6 Don’t use non-default isolation level for mysql 2018-02-11 16:14:42 +00:00
Tobie Morgan Hitchcock
3194253b71 Update 3rd party dependencies 2018-02-11 09:40:15 +00:00
Tobie Morgan Hitchcock
02ef06a1d2 Increase the limit when fetching batch items from the kvs 2018-02-11 00:17:16 +00:00
Tobie Morgan Hitchcock
ccf57df085 Add support for mysql as a backend kv store 2018-02-11 00:16:28 +00:00
Tobie Morgan Hitchcock
84b72e25d2 Don’t use of ClrL, GetL, DelL, PutL methods on KV store
Remove the need to query a particular KV level, and instead use slightly different encoded keys, and use prefix based iteration. This means we can use different KV stores to give the same functionality, without needing to use hierarchical KV stores.
2018-02-09 15:08:27 +00:00
Tobie Morgan Hitchcock
8cce4ad185 No need for PutC as we always already have the record value
We don’t need to check whether the record already exists, as we always have any record contents when we are procesing a document. Therefore we already know if a document exists or not in the kv store.
2018-02-08 10:59:54 +00:00
Tobie Morgan Hitchcock
dc6a357e26 Enable passing context when beginning a transaction 2018-02-06 17:07:42 +00:00
Tobie Morgan Hitchcock
788d19c498 Fix godoc comments 2018-02-06 17:05:26 +00:00
Tobie Morgan Hitchcock
36e7d8ed3a Flush websocket notifications correctly
Websocket notifications were cleared/flushed regardless of whether individual statements were successful or not.

Now notifications are shifted onto the stack, or removed if the statement is unsuccessful. Once the full query has been processed, all pending notifications are flushed to all websockets (ignoring the current connection frin which th query originated).
2018-01-31 09:15:29 +00:00
Tobie Morgan Hitchcock
a9883efc4a Improve error messages on authentication failure 2018-01-31 08:52:21 +00:00
Tobie Morgan Hitchcock
58b8b461e3 Enable specifying NS, DB, and auth through websocket protocols 2018-01-31 08:52:11 +00:00
Tobie Morgan Hitchcock
7a3355bff0 Enable customisable file size policies for storage backends 2018-01-12 11:10:11 +00:00
Tobie Morgan Hitchcock
afac8b405f Update 3rd party dependencies 2018-01-12 10:55:14 +00:00
Tobie Morgan Hitchcock
19604e589b Buffer changes if data storage layer is shrinking 2018-01-11 15:14:50 +00:00
Tobie Morgan Hitchcock
a52458a26f Update 3rd party dependencies 2018-01-11 15:14:19 +00:00
Tobie Morgan Hitchcock
62a1a38449 Add cli option to specify db shrink policy 2018-01-11 14:57:10 +00:00
Tobie Morgan Hitchcock
d0d1316449 Add test for parsing times and records within json 2018-01-10 14:54:09 +00:00
Tobie Morgan Hitchcock
2f23e84877 Parse times and records within json content 2018-01-10 13:17:50 +00:00
Tobie Morgan Hitchcock
b54e551353 No need to pass sql.parser into sql.scanner 2018-01-10 13:07:09 +00:00
Tobie Morgan Hitchcock
558eba3797 Update 3rd party dependencies 2018-01-10 11:46:30 +00:00
Tobie Morgan Hitchcock
19bf0b3e7d Don’t ignore errors from the data layer
If the data layer encountered an error when committing a transaction, then the error was ignored. Now all errors from the data layer which occur when cancelling or committing a transaction are passed to the end-user and displayed accordingly.
2018-01-10 11:33:26 +00:00
Tobie Morgan Hitchcock
6c939c756c Fix incremental table processing in iterator 2018-01-10 10:36:30 +00:00
Tobie Morgan Hitchcock
e24cc5b620 Add method variable to events
A new $method variable is now available in database events. The $method variable specifies the type of request that was made which triggered the event. Possible values are CREATE / UPDATE / DELETE.
2017-12-20 06:53:06 +00:00
Tobie Morgan Hitchcock
40f1c4b224 Improve error message on scope signin 2017-12-20 06:51:51 +00:00
Tobie Morgan Hitchcock
bec4c4e235 Change default surreal.io port to 443 2017-12-20 06:51:11 +00:00
Tobie Morgan Hitchcock
4e81a5633c Improve binary condition comparison checks 2017-12-12 01:11:09 +00:00
Tobie Morgan Hitchcock
cc8f4ec29e Use special SQL type for null values 2017-12-12 01:10:37 +00:00
Tobie Morgan Hitchcock
b4c49a7099 Ensure that the NS and DB are available to the live query 2017-12-12 01:08:32 +00:00
Tobie Morgan Hitchcock
1200b6c209 Enable deep copying of time.TIme values 2017-12-12 01:08:03 +00:00
Tobie Morgan Hitchcock
21c7cb2341 Remove unnecessary brackets in sql test expressions 2017-12-12 01:07:24 +00:00
Tobie Morgan Hitchcock
3eef62067a Enable parsing times in strings which have been set using JSON
If the data of a record was set using CONTENT, MERGE, or DIFF, then any Javascript Date values were treated as strings. These values are now parsed if the field is defined as a datetime field.
2017-12-12 01:05:40 +00:00
Tobie Morgan Hitchcock
cacdf6dd49 Add SQL function for creating an array 2017-12-12 00:54:18 +00:00
Tobie Morgan Hitchcock
8076afd414 If adding to an empty value, set it as an array
If we have an empty field ‘test’ and we specify the sql `SET test += “test”` then we’ll presume it’s going to be an array if it isn’t a number or a decimal.
2017-12-11 17:52:02 +00:00
Tobie Morgan Hitchcock
8849c7c30a Enable specifying a regex using a function 2017-12-11 17:49:58 +00:00
Tobie Morgan Hitchcock
0c607302ed Ensure one can specify regexes in sql expressions 2017-12-11 15:59:55 +00:00
Tobie Morgan Hitchcock
91bfb043dc Add test for events which create foreign keys 2017-12-08 14:30:11 +00:00
Tobie Morgan Hitchcock
fd35a134ca Enable special param values which supersede subquery params 2017-12-08 14:28:55 +00:00