Commit graph

723 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
d367726709 Ensure NULL/VOID/EMPTY values are compared correctly 2017-12-03 11:10:38 +00:00
Tobie Morgan Hitchcock
327bdd05cd Fix bug where CONTENT/MERGE/DIFF params weren’t fetched 2017-12-03 00:46:46 +00:00
Tobie Morgan Hitchcock
82df9dca86 Fix typo in comment 2017-12-03 00:44:07 +00:00
Tobie Morgan Hitchcock
f623ded1e4 Simplify table records loop in iterator 2017-12-01 00:36:14 +00:00
Tobie Morgan Hitchcock
34aa10f9b8 Pass channels into goroutines to prevent data race 2017-12-01 00:35:33 +00:00
Tobie Morgan Hitchcock
001d7f866c Prevent datarace, by not using global variable when decoding
Don’t use the global variable ‘skip’ to decode into, as this causes a data race, when decoding keys from inside multiple different goroutines. Instead we now create a new string variable for every decode function, which will be created on the heap and ignored when the function returns.
2017-12-01 00:34:44 +00:00
Tobie Morgan Hitchcock
63f2791494 Remove the need for the ‘unsafe’ package when encoding keys 2017-11-30 00:59:10 +00:00
Tobie Morgan Hitchcock
2a7f39ac1e Update 3rd party libraries 2017-11-30 00:57:52 +00:00
Tobie Morgan Hitchcock
42bbc078e0 Don’t allow params inside SQL PathExpressions 2017-11-29 10:21:02 +00:00
Tobie Morgan Hitchcock
ba4af9a305 Remove unused SQL keyword 2017-11-28 19:02:11 +00:00
Tobie Morgan Hitchcock
4ff14caace Add initial path following implementation 2017-11-28 01:20:30 +00:00
Tobie Morgan Hitchcock
475899960b Remove unused code 2017-11-28 01:18:41 +00:00
Tobie Morgan Hitchcock
eb7a9c2744 Add ability to retrieve different values
It is now possible to specify a function to manipulate each values stored in a data object, when retrieving that value. This enables storing compressed obejcts as strings, which are expanded when accessed. This is used to store *sql.Thing values, which when requested can access embedded fields by fetching and returning the full record when the *sql.Thing is requested.
2017-11-28 00:39:00 +00:00
Tobie Morgan Hitchcock
c925c40846 Yes we do need to copy all maps and slices 2017-11-27 18:32:47 +00:00
Tobie Morgan Hitchcock
287951a37f Ensure we trim all data path parts before fetching values 2017-11-27 18:30:20 +00:00
Tobie Morgan Hitchcock
4437b2b8a5 Remove old and unused code 2017-11-27 14:21:56 +00:00
Tobie Morgan Hitchcock
93d154a099 Add sql functions for generating GUIDs 2017-11-27 11:35:26 +00:00
Tobie Morgan Hitchcock
7fbc9feff9 Simplify uuid util package 2017-11-27 11:34:59 +00:00
Tobie Morgan Hitchcock
cfa573e7cf Ensure Model can be encoded<->decoded into CORK 2017-11-27 11:16:29 +00:00
Tobie Morgan Hitchcock
386efc73ff Add extra tests for parsing record IDs 2017-11-26 17:45:17 +00:00
Tobie Morgan Hitchcock
0762ee25b2 Use XIDs instead of UUIDs for record IDs 2017-11-26 16:54:49 +00:00
Tobie Morgan Hitchcock
1ac78aa950 A single *Thing in a subquery is the same as LIMIT 1 2017-11-26 13:45:48 +00:00
Tobie Morgan Hitchcock
687c3238b0 No need for verbose output on with cli tests 2017-11-24 20:11:37 +00:00
Tobie Morgan Hitchcock
17cecae390 Add ability to specific http scheme when connecting
Add ability to specific http scheme when connecting to a remote database, when import / exporting / running sql.
2017-11-24 20:07:31 +00:00
Tobie Morgan Hitchcock
f1e4e3961a Enable -a as a cli aliase for —auth on all commands 2017-11-24 19:49:53 +00:00
Tobie Morgan Hitchcock
a569ad78d6 Improve statement read/write status detection
Only store read-write statement status in the database for statements which can be either read or write. For those statements which are always write statements (Live, Kill, Create, Update, Delete, Relate, Insert, Upsert, Define, Remove….), then hardcode this on the statement itself.
2017-11-24 12:56:53 +00:00
Tobie Morgan Hitchcock
8de7424efb Ensure the IfStatement can be encoded and decoded into cork 2017-11-24 12:47:59 +00:00
Tobie Morgan Hitchcock
851c52d901 No need to version index data 2017-11-24 12:46:12 +00:00
Tobie Morgan Hitchcock
527f85f8e6 Implement both JsonMarshaler and JsonUnmarshaler
If a type only defines one-half of the symmetry (e.g. it implements MarshalJSON() but not UnmarshalJSON() ), then that type doesn't satisfy the codec encoding/decoding check and instead codec will not encode or decode the item using the special interface methods.
2017-11-24 10:55:13 +00:00
Tobie Morgan Hitchcock
b96cdc79dc Implement both TextMarshaler and TextUnmarshaler for codec
If a type only defines one-half of the symmetry (e.g. it implements MarshalJSON() but not UnmarshalJSON() ), then that type doesn't satisfy the codec encoding/decoding check and instead codec will not encode or decode the item using the special interface methods.
2017-11-24 10:54:21 +00:00
Tobie Morgan Hitchcock
37e015b482 Only return an executor to the pool once
The executor was being returned to the pool twice, which was resulting in nil interface{} errors when creating new executors concurrently, as the transaction would not be set properly.
2017-11-24 01:45:56 +00:00
Tobie Morgan Hitchcock
26e5ef3978 Fix logic error with http redirects 2017-11-23 14:34:32 +00:00
Tobie Morgan Hitchcock
7bfcf8b7f8 Redirect http requests to https 2017-11-23 13:38:00 +00:00
Tobie Morgan Hitchcock
a8137134e3 Ensure erased document is nil not empty map 2017-11-17 12:41:35 +00:00
Tobie Morgan Hitchcock
62739b8154 Add live query support in the web layer to websockets 2017-11-16 20:54:10 +00:00
Tobie Morgan Hitchcock
43d841dacc Full update of the DB package 2017-11-16 20:53:39 +00:00
Tobie Morgan Hitchcock
1d08949fff Full update of the SQL package 2017-11-16 20:53:13 +00:00
Tobie Morgan Hitchcock
2609d761be Improve web layer authentication and session process 2017-11-16 20:52:17 +00:00
Tobie Morgan Hitchcock
1a5267e2e2 Improve mem query caching package 2017-11-16 20:51:39 +00:00
Tobie Morgan Hitchcock
aeb362e541 Update comments 2017-11-16 20:50:57 +00:00
Tobie Morgan Hitchcock
1ee95333fb Run auth middleware just before gzip middleware 2017-11-16 20:50:52 +00:00
Tobie Morgan Hitchcock
33ab1efb08 Ensure that gzip is the final middleware to be initialised 2017-11-16 20:49:28 +00:00
Tobie Morgan Hitchcock
8f06b958ff Remove TCP deadline timeouts completely
Deadline timeouts are not useful, as they do not give any meaningful http error responses to the end user. Instead we now make use of contexts throught the system to detect query timeouts, and send error messages accordingly.
2017-11-16 20:48:08 +00:00
Tobie Morgan Hitchcock
9fb7eec04b Add specific HTTP CORS headers 2017-11-16 20:46:54 +00:00
Tobie Morgan Hitchcock
82513d6e54 Improve RPC authentication query information 2017-11-16 20:46:17 +00:00
Tobie Morgan Hitchcock
d5a947bf53 Add batch support to RPC endpoint queries 2017-11-16 20:46:02 +00:00
Tobie Morgan Hitchcock
d7469c30d5 Insure start and limit query params do not overflow limit 2017-11-16 20:44:20 +00:00
Tobie Morgan Hitchcock
878ddbbf09 Fix SQL query for REST DELETE route 2017-11-16 20:43:38 +00:00
Tobie Morgan Hitchcock
28c10c9747 Add VERSION query param support to REST GET route 2017-11-16 20:43:26 +00:00
Tobie Morgan Hitchcock
0675bdb000 Change allowed content types on HTTP routes 2017-11-16 20:42:42 +00:00