Commit graph

224 commits

Author SHA1 Message Date
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
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
4e81a5633c Improve binary condition comparison checks 2017-12-12 01:11:09 +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
21c7cb2341 Remove unnecessary brackets in sql test expressions 2017-12-12 01:07:24 +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
Tobie Morgan Hitchcock
5357c93558 Remove @ character for record ids in tests 2017-12-08 14:27:47 +00:00
Tobie Morgan Hitchcock
e3c7aacd66 Enable parameters in LIVE queries 2017-12-08 10:29:52 +00:00
Tobie Morgan Hitchcock
84b9cdc93a Fix binary equality tree parsing and calculations. 2017-12-06 20:18:57 +00:00
Tobie Morgan Hitchcock
fc0825a7fa Make sure that any non floats are converted to floats 2017-12-06 13:21:49 +00:00
Tobie Morgan Hitchcock
548995e935 Cancel the context timeout AFTER errors are checked 2017-12-06 13:21:12 +00:00
Tobie Morgan Hitchcock
6d8686138a Ensure permission checks don’t create subsequent checks 2017-12-06 13:20:34 +00:00
Tobie Morgan Hitchcock
7e8d5f9fe9 Add tests for using params with CONTENT/MERGE/DIFF 2017-12-05 11:09:06 +00:00
Tobie Morgan Hitchcock
6e8fdaa2db Ensure nil fields are removed when SCHEMAFULL 2017-12-05 11:09:04 +00:00
Tobie Morgan Hitchcock
ccdc6fb8ea Add ability to define the order fields are processed 2017-12-05 01:57:25 +00:00
Tobie Morgan Hitchcock
2087ea5fb5 Ensure ranges are iterated over correctly 2017-12-05 01:12:12 +00:00
Tobie Morgan Hitchcock
5c7378c9c7 Prevent circular references when yielding data 2017-12-04 22:20:39 +00:00
Tobie Morgan Hitchcock
8fadbc9f35 Enable path expressions starting from params 2017-12-04 22:20:19 +00:00
Tobie Morgan Hitchcock
444d7858b8 Enable use of VOID in field VALUE statements
It is now possible to specify VOID values in field VALUE statements, to remove the field entirely.
2017-12-04 10:10:29 +00:00
Tobie Morgan Hitchcock
7733b7b129 Reset ctx variables between calculating field VALUE and ASSERT
If the field value was changed in the VALUE statement, then the context variables were not reset to reflect this change in the ASSERT statement. As a result the ASSERT would receive the old values prior to being affected by the VALUE statement.
2017-12-04 10:09:49 +00:00
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
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
4ff14caace Add initial path following implementation 2017-11-28 01:20:30 +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
4437b2b8a5 Remove old and unused code 2017-11-27 14:21:56 +00:00
Tobie Morgan Hitchcock
7fbc9feff9 Simplify uuid util package 2017-11-27 11:34:59 +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
851c52d901 No need to version index data 2017-11-24 12:46:12 +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
a8137134e3 Ensure erased document is nil not empty map 2017-11-17 12:41:35 +00:00
Tobie Morgan Hitchcock
43d841dacc Full update of the DB package 2017-11-16 20:53:39 +00:00
Tobie Morgan Hitchcock
fa714c1bdd Listen and wait for errors when server exits 2017-11-16 20:03:38 +00:00
Tobie Morgan Hitchcock
5a558c0d6f Implement Authable statements for improved logging 2017-03-24 21:25:22 +00:00
Tobie Morgan Hitchcock
7a071af821 Download generate dependencies in each gen files 2017-03-04 10:55:58 +00:00
Tobie Morgan Hitchcock
a133eb2482 Add HTTP 504 request timeouts to certain routes 2017-03-03 21:41:06 +00:00
Tobie Morgan Hitchcock
a96a8466cb Add initial golang code tracing and logging 2017-03-03 21:39:37 +00:00
Tobie Morgan Hitchcock
98db89a2d7 Implement query statement timeout functionality 2017-03-02 14:38:56 +00:00
Tobie Morgan Hitchcock
2d5151c8ba Enable SQL AST string formatting 2017-03-02 10:47:10 +00:00
Tobie Morgan Hitchcock
1157835a29 Don’t perform cpu intensive operations in SQL parser 2017-03-02 10:32:20 +00:00
Tobie Morgan Hitchcock
e3634fb4a8 Improve SQL debug logging 2017-02-28 00:19:21 +00:00
Tobie Morgan Hitchcock
b68c33835e Ensure all db.executor methods are private 2017-02-28 00:17:10 +00:00
Tobie Morgan Hitchcock
3167be73bb No need to pass statements in from goroutine
A series of statements on one request are always handled and run serially, so there is no need to loop over them in a goroutine.
2017-02-28 00:00:39 +00:00
Tobie Morgan Hitchcock
d5ee46ab17 Use chan struct for http connection closed channel 2017-02-27 15:30:46 +00:00
Tobie Morgan Hitchcock
7b78ff5b6e Add request context data to db query logs 2017-02-23 10:14:10 +00:00
Tobie Morgan Hitchcock
07c034bb75 Add request context to query executor 2017-02-23 10:14:02 +00:00
Tobie Morgan Hitchcock
73c56e4df5 Log sql queries centrally, not separately 2017-02-23 10:11:52 +00:00
Tobie Morgan Hitchcock
b304c9f3f4 Add RETURN NULL / VOID / EMPTY query functionality 2017-02-20 01:45:09 +00:00
Tobie Morgan Hitchcock
fbb0bd79bd Don’t delete txn until we have cancelled/committed 2017-02-20 01:44:13 +00:00
Tobie Morgan Hitchcock
a700ef9bc4 Improve debug logging throughout codebase 2017-02-20 01:44:13 +00:00
Tobie Morgan Hitchcock
6a719d815b Improve errors throught codebase 2017-02-20 01:44:13 +00:00
Tobie Morgan Hitchcock
e86857bdf7 Enable import / export of database transaction log 2017-02-20 01:44:12 +00:00
Tobie Morgan Hitchcock
363cfa8758 Use sync pool for query executor 2017-02-20 01:44:12 +00:00
Tobie Morgan Hitchcock
83a64c6c29 Enforce default RETURN value in sql parser 2017-02-20 01:44:12 +00:00
Tobie Morgan Hitchcock
623d55225c Use transaction mem cache for db config data 2017-02-20 01:44:12 +00:00
Tobie Morgan Hitchcock
1cb44cce2f Only product stack trace if log level is debug 2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
2a35485089 Output full stacktrace for errors when debugging 2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
7f0ea653b8 Improve sql query requests timing 2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
1fd450890b Fix typo 2017-02-20 01:44:10 +00:00
Tobie Morgan Hitchcock
a5dc358e4e Don’t pass txn around, but use executor txn 2017-02-20 01:44:08 +00:00
Tobie Morgan Hitchcock
6807d4c338 Switch underlying KV store to rixxdb/dendrodb 2017-02-20 01:31:15 +00:00
Tobie Morgan Hitchcock
a3b9362adb Switch underlying KV store to rixxdb/dendrodb 2017-02-09 11:16:59 +00:00
Tobie Morgan Hitchcock
e3c472b31a Remove incorrect build tags 2017-01-11 11:22:17 +00:00
Tobie Morgan Hitchcock
fa40f52302 Place build instruction before package name 2016-12-08 22:04:22 +00:00
Tobie Morgan Hitchcock
2fcc2e3668 Improve SQL INFO command to support namespaces 2016-11-23 12:53:27 +00:00
Tobie Morgan Hitchcock
94c9631d91 Improve database authentication
Improve the database authentication implementation for namespaces, databases, and scopes.
2016-11-21 18:48:25 +00:00
Tobie Morgan Hitchcock
4931bfbca5 Enable public method for running sql query 2016-11-21 14:36:37 +00:00
Tobie Morgan Hitchcock
85fcdccab5 Ensure maps are initialised before parsing sql 2016-11-05 13:59:39 +00:00
Tobie Morgan Hitchcock
54ad8a16d9 Add codec code generation 2016-11-04 11:45:38 +00:00
Tobie Morgan Hitchcock
68c22bc25c Add subqueries, subexpressions, and paths to SQL 2016-11-04 09:58:11 +00:00
Tobie Morgan Hitchcock
4db1bbe944 Improve sql query error messages 2016-11-01 22:57:27 +00:00
Tobie Morgan Hitchcock
151d73b954 Remove MODIFY SQL command and add DIFF to UPDATE
MODIFY SQL statements have now been merged with UPDATE SQL statements, as the functionality was similar, but the code was duplicated.

The DIFF SQL command has been added to the UPDATE query, so that records can be updated with DIFFs.
2016-10-30 00:33:28 +01:00
Tobie Morgan Hitchcock
6077dc2952 Add SQL RETURN statements 2016-10-29 12:29:20 +01:00
Tobie Morgan Hitchcock
174cc8bcad Add SQL LET statements with bound parameters 2016-10-29 12:28:20 +01:00
Tobie Morgan Hitchcock
67c32e5eea Improve query transaction support 2016-10-27 09:35:20 +01:00
Tobie Morgan Hitchcock
2290a95ec6 Add SQL SCOPE query type 2016-10-18 14:27:17 +01:00
Tobie Morgan Hitchcock
7556a77df0 Improve transactions 2016-10-18 13:49:46 +01:00
Tobie Morgan Hitchcock
6075e4d1d7 Ensure NS KV is added when defining 2016-10-18 13:48:07 +01:00
Tobie Morgan Hitchcock
dd79f3c440 Remove SQL RECORD statement 2016-10-07 14:21:01 +01:00
Tobie Morgan Hitchcock
36f65cbc3c Fix typoe in licence comment 2016-09-21 00:36:50 +01:00
Tobie Morgan Hitchcock
66f09db9f5 Add SQL VIEWs 2016-09-21 00:36:37 +01:00
Tobie Morgan Hitchcock
f37ec653d1 Remove SQL EXPLAIN command 2016-09-21 00:34:21 +01:00
Tobie Morgan Hitchcock
aa4f788566 Use generic pack.Encode + pack.Decode methods 2016-09-19 12:02:42 +01:00
Tobie Morgan Hitchcock
3089b6460f Switch SQL RULES and SQL TABLE order 2016-09-19 11:12:08 +01:00
Tobie Morgan Hitchcock
ab30c6b85e Add SQL INFO query command 2016-09-19 11:08:44 +01:00
Tobie Morgan Hitchcock
8d3319a7b4 Remove old RESYNC index code 2016-09-14 22:34:39 +01:00
Tobie Morgan Hitchcock
1606be22ff Output db.Response instead of generc interface 2016-09-14 22:34:26 +01:00
Tobie Morgan Hitchcock
3db0d79443 Use proper db parameters 2016-09-14 22:32:52 +01:00
Tobie Morgan Hitchcock
1e000c2cc7 Don’t show anything on delete by default 2016-09-14 22:27:15 +01:00
Tobie Morgan Hitchcock
b04dfd1e9f Resync index on index creation 2016-09-14 22:27:00 +01:00
Tobie Morgan Hitchcock
dc3793d03d Use BINC encoding instead of MsgPACK for storage 2016-09-14 22:26:41 +01:00
Tobie Morgan Hitchcock
fbc94f90e5 Pass old and new item data to rules checking code 2016-09-14 22:24:22 +01:00
Tobie Morgan Hitchcock
48b644f399 Remove RESYNC INDEX command 2016-09-14 10:23:57 +01:00
Tobie Morgan Hitchcock
2fb4791387 Allow modifying whole tables with DIFFs 2016-09-07 16:58:37 +01:00
Tobie Morgan Hitchcock
a0d3f6ec2a Update to work with sql parser improvements 2016-09-06 14:33:02 +01:00
Tobie Morgan Hitchcock
ba9f348e1c Enable stack trace logging 2016-07-21 22:49:47 +01:00
Tobie Morgan Hitchcock
52620fa9ce Ensure requester is allowed to select/update/delete each document 2016-07-21 22:49:34 +01:00
Tobie Morgan Hitchcock
4af24a5ca0 Add functionality to database defined fields 2016-07-21 22:48:32 +01:00
Tobie Morgan Hitchcock
804fabc6c0 Don't log db connection string incase of sensitive data 2016-07-19 12:04:22 +01:00
Tobie Morgan Hitchcock
98c61b0d2c Don’t store ‘trail’ information in store 2016-07-18 23:02:37 +01:00
Tobie Morgan Hitchcock
a556096cee Pass full configuration data into data store packages 2016-07-18 13:33:26 +01:00
Tobie Morgan Hitchcock
e85a6d86df Remove backup code from db package 2016-07-17 16:09:11 +01:00
Tobie Morgan Hitchcock
a9bff47026 Add golang code comments 2016-07-17 11:39:43 +01:00
Tobie Morgan Hitchcock
2334d9f7a1 Update errors and error messages 2016-07-16 14:44:48 +01:00
Tobie Morgan Hitchcock
d16d9cab48 Enable catching panics in database calls 2016-07-16 14:44:28 +01:00
Tobie Morgan Hitchcock
8a0849d6da Enable multiple database backends 2016-07-16 14:43:53 +01:00
Tobie Morgan Hitchcock
bea5da84e1 Update db package for alpha testing 2016-07-04 11:37:29 +01:00
Tobie Morgan Hitchcock
51a2cb3415 Enable specifying database file path 2016-06-15 13:38:55 +01:00
Tobie Morgan Hitchcock
b9282ee7ba Use internal kv store not cockroachdb 2016-05-25 12:33:05 +01:00
Tobie Morgan Hitchcock
c1845cb5f7 Simplify db output errors 2016-05-25 12:32:32 +01:00
Tobie Morgan Hitchcock
0f4c8c1c8c Add table statement execution 2016-05-25 11:47:11 +01:00
Tobie Morgan Hitchcock
cce8213fe9 Add basic db implementation with cockroachdb 2016-05-11 20:23:21 +01:00
Tobie Morgan Hitchcock
e277fb1e6c Use type checking to detect sql input type 2016-02-29 17:32:35 +00:00
Tobie Morgan Hitchcock
d708dab39e ParseString / ParseBuffer as standalone functions in parser package 2016-02-27 12:35:13 +00:00
Tobie Morgan Hitchcock
a16a57c22a Handle multiple query statements at db layer 2016-02-27 12:16:59 +00:00
Tobie Morgan Hitchcock
07da6b637d Ensure empty queries cause errors 2016-02-27 12:05:35 +00:00
Tobie Morgan Hitchcock
4544d25762 Add blueprints for manipulating database from sql statements 2016-02-27 01:00:19 +00:00