Commit graph

43 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
918c696eb1 Complete functionality to define scope tokens 2018-09-13 17:34:27 +01: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
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
e300e9c423 Improve efficiency of database key encoding and decoding
Make use of the github.com/abcum/bump package to efficiently encode and decode from and to byte slices, whilst at the same time using encoder and decoder pools, instead of creating a new buffer for each encoding / decoding process.
2017-11-16 20:18:42 +00:00
Tobie Morgan Hitchcock
61015c8f7a Add database key for FT foreign tables 2017-11-16 20:16:52 +00:00
Tobie Morgan Hitchcock
8ffdaa6d77 Add database key for EV table events 2017-11-16 20:16:52 +00:00
Tobie Morgan Hitchcock
21cb197d5a Make sure LV database key specifies a table 2017-11-16 20:16:52 +00:00
Tobie Morgan Hitchcock
6a1ec1b2bb Remove unused VW database key 2017-11-16 20:16:52 +00:00
Tobie Morgan Hitchcock
81497e941d Add Copy() method to all keys for efficiently duplicating a key 2017-11-16 20:16:51 +00:00
Tobie Morgan Hitchcock
b957202ee5 Remove unused CK database key 2017-11-16 20:16:24 +00:00
Tobie Morgan Hitchcock
2d5151c8ba Enable SQL AST string formatting 2017-03-02 10:47:10 +00:00
Tobie Morgan Hitchcock
f56196a150 Update keys package 2017-02-09 20:35:19 +00:00
Tobie Morgan Hitchcock
91b3b83554 Add key for SCL SCOPE queries 2016-10-14 21:26:49 +01:00
Tobie Morgan Hitchcock
d578715d01 Add key for SQL LIVE queries 2016-10-14 21:26:39 +01:00
Tobie Morgan Hitchcock
8791fb4cfd Improve code comments 2016-10-14 21:26:26 +01:00
Tobie Morgan Hitchcock
f90554c0b5 Ensure methods are not exported 2016-10-14 07:52:00 +01:00
Tobie Morgan Hitchcock
40a52dfbf1 Enable sorting of negative numbers and floats 2016-10-14 07:14:34 +01:00
Tobie Morgan Hitchcock
fdb639e517 Simplify variables 2016-10-14 07:14:05 +01:00
Tobie Morgan Hitchcock
66f09db9f5 Add SQL VIEWs 2016-09-21 00:36:37 +01:00
Tobie Morgan Hitchcock
2f12feeaaa Improve array, and interface encoding / decoding 2016-09-10 00:24:46 +01:00
Tobie Morgan Hitchcock
529ddbbec2 Encode all numbers as float64
All numbers in encoded keys are now encoded into float64, ensuring that decimal numbers are sorted alongside integers.

The maximum number able to be stored as a float64, without losing precision, is now (1<<53 - 1) - the same maximum number possible in javascript.
2016-09-10 00:21:58 +01:00
Tobie Morgan Hitchcock
d76038652b Add key type for rules 2016-09-06 13:27:59 +01:00
Tobie Morgan Hitchcock
33ef395d5b Remove unused key type 2016-09-06 13:27:15 +01:00
Tobie Morgan Hitchcock
8758ce19ff Add test for keys.CK 2016-08-28 09:41:21 +01:00
Tobie Morgan Hitchcock
e23473cfa9 Ensure correct encryption key is provided if using populated data store 2016-07-18 23:01:28 +01:00
Tobie Morgan Hitchcock
a91ca78606 Remove failing tests temporarily 2016-07-04 11:36:07 +01:00
Tobie Morgan Hitchcock
6afa0ede40 Rename Trail to Patch 2016-07-04 10:02:51 +01:00
Tobie Morgan Hitchcock
f0fde5ef16 Add keys 2016-06-16 13:33:28 +01:00
Tobie Morgan Hitchcock
485475d7f3 Ensure EndOfTime is always in the future 2016-05-31 13:35:08 +01:00
Tobie Morgan Hitchcock
f795c97c22 Add variables for begging and end of time 2016-05-31 11:24:10 +01:00
Tobie Morgan Hitchcock
ece43dae87 Add additional keys 2016-05-27 16:31:39 +01:00
Tobie Morgan Hitchcock
6d872fbd5d Change key struct fields to interface{}
Most key struct fields are changed to interface{} so that they can be encoded with whatever data is underlying.
2016-05-27 16:29:50 +01:00
Tobie Morgan Hitchcock
c5f7c81ad1 Add key prefix testing 2016-05-27 16:27:02 +01:00
Tobie Morgan Hitchcock
e69ae69e4f Add ability to ignore struct fields when encoding keys 2016-05-27 16:25:46 +01:00
Tobie Morgan Hitchcock
47adafe3c3 Enable custom type encoding 2016-05-26 00:25:18 +01:00
Tobie Morgan Hitchcock
16e1477f07 Remove unused packages 2016-05-26 00:25:09 +01:00
Tobie Morgan Hitchcock
c937505b7e Remove unused package imports 2016-05-23 13:31:49 +01:00
Tobie Morgan Hitchcock
5e2241f77a Hide Prefix and Suffix characters from public 2016-05-23 13:31:41 +01:00
Tobie Morgan Hitchcock
2024efdb0f Ensure all tests are run 2016-05-23 13:31:24 +01:00
Tobie Morgan Hitchcock
24a7e406c0 End strings with double TERM byte 2016-05-23 13:31:16 +01:00
Tobie Morgan Hitchcock
7addcd8289 Latest implementation of key encoding+decoding 2016-05-18 00:55:50 +01:00
Tobie Morgan Hitchcock
07139fdc5b Add database keys package
The keys package is used to encode and decode keys. Keys are used for storage in the key:value store.
2016-03-15 21:30:47 +00:00