Commit graph

177 commits

Author SHA1 Message Date
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
475899960b Remove unused code 2017-11-28 01:18:41 +00:00
Tobie Morgan Hitchcock
93d154a099 Add sql functions for generating GUIDs 2017-11-27 11:35:26 +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
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
1d08949fff Full update of the SQL package 2017-11-16 20:53:13 +00:00
Tobie Morgan Hitchcock
4c16dafcf3 Add duration method to killable statements 2017-04-28 17:12:11 +01:00
Tobie Morgan Hitchcock
b60c663fdd SQL models need a different min and max value
If the same minimum and maximum value is used in a SQL model … |person:1..1| then the sql query parser will fail.
2017-04-28 17:09:35 +01:00
Tobie Morgan Hitchcock
dacf7b954b Enable WITH aswell as TO in RELATE clause 2017-04-28 17:07:38 +01:00
Tobie Morgan Hitchcock
8a53ed3617 Fix SQL tests 2017-04-14 13:24:53 +01:00
Tobie Morgan Hitchcock
7aca98a581 No need to generate codec code definitions
SQL ASTs are never outputted to the end user, but instead are only ever encoded/decoded using CORK, so we don’t need to pre-generate any code definitions for codec (JSON, BINC, CBOR, MsgPack).
2017-04-14 13:22:29 +01:00
Tobie Morgan Hitchcock
aa7e4ac561 Enable model expressions in SQL parser
The SQL parser now supports model expressions for defining ranges using the |table:0,0.5..100| notation syntax.
2017-04-14 13:21:08 +01:00
Tobie Morgan Hitchcock
2de5a8fa3f Simplify parsing @table:thing definitions 2017-04-14 13:13:31 +01:00
Tobie Morgan Hitchcock
a3da779190 Improve SQL error messages 2017-04-12 18:45:52 +01:00
Tobie Morgan Hitchcock
9df4c5041a Use pointer 2017-04-12 18:44:01 +01:00
Tobie Morgan Hitchcock
17b1f9ff55 Fix JSON parsing in SQL
Previously, JSON which contained bracket `[]` or brace `{}` characters inside strings would fail to parse as valid JSON.
2017-04-12 17:44:27 +01: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
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
378bbe6dae Ensure default tables/fields are private by default 2017-03-02 10:55:42 +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
6e223f5f08 Move authentication level constants to cnf package
Instead of defining the authentication level types as ints in the sql package, there is now a specific type which is now located in the cnf package.
2017-02-24 13:33:03 +00:00
Tobie Morgan Hitchcock
e4bef0c4b7 Differentiate between IDENT and EXPR in SQL
Previously it was possible to CREATE/UPDATE/DELETE path expressions as this would satisfy an IDENT in the SQL parser.

Now however, there is a difference between an IDENT and an EXPR…

IDENT: person | person_main | person123
EXPR: person | person.path | person[0].path

As a result, path expressions are only possible when setting data or setting conditional conditions.
2017-02-24 13:05:07 +00:00
Tobie Morgan Hitchcock
d27e00e737 Fix sql tests 2017-02-23 15:09:02 +00:00
Tobie Morgan Hitchcock
e10debba6c Enable query params for USE NS / USE DB in queries 2017-02-20 01:44:13 +00:00
Tobie Morgan Hitchcock
ac868694eb Enable query params for VERSION in queries 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
cd7922db15 Enable query params for LIMIT and START in queries 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
3ffaec9265 Remove RETURN statement from SELECT query 2017-02-20 01:44:12 +00:00
Tobie Morgan Hitchcock
3f82f83cf1 Remove SQL error for embedded DEFINE/REMOVE queries 2017-02-20 01:44:12 +00:00
Tobie Morgan Hitchcock
b62b7ed2c9 Don’t use pointer as we already are a pointer 2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
6c82529d85 JSON Patch expects only array in SQL, not object 2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
b724d864f8 Add ability to define NAMESPACE without DATABASE
Once somebody had specified USE NAMESPACE to select a namespace, it was not possible to DEFINE a DATABASE underneath the NAMESPACE, as an error that ‘no database is selected’ would be returned. Not it is possible to DEFINE DATABASE having selected only a NAMESPACE.
2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
7d88c389e1 Enable use of SQL DEFINE/REMOVE in transactions 2017-02-20 01:44:11 +00:00
Tobie Morgan Hitchcock
dd230dca56 Enable SQL ASTs to self-encode and self-decode 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
dfee11339e Fix SQL bug where NAMESPACE/DATABASE were needed twice
DEFINE NAMESPACE and REMOVE NAMESPACE statements expected two NAMESPACE keywords in the SQL query.

DEFINE DATABASE and REMOVE DATABASE statements expected two DATABASE keywords in the SQL query.
2017-02-09 10:31:53 +00:00
Tobie Morgan Hitchcock
74658132c1 Enable password field types 2017-02-03 19:10:51 +00:00
Tobie Morgan Hitchcock
1901f6fd8c Enable simplified json in SQL queries 2017-02-03 19:08:57 +00:00
Tobie Morgan Hitchcock
a941987349 Remove unnecessary return statement 2017-02-03 19:08:37 +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
9b8aec6549 Add SQL functions for hotp/totp/yubikey security 2016-12-08 21:57:22 +00:00
Tobie Morgan Hitchcock
fbe34c6083 Add PERMISSIONS and remove DEFINE / REMOVE RULES 2016-11-26 13:39:03 +00:00
Tobie Morgan Hitchcock
2b47e6e0a9 No need for a default TYPE on SQL DEFINE FIELD
Previously the default type for DEFINE FIELD statements was “any”, but this is unnecessary, as fields with type “any” are not type-checked anyway, so there is little point in defining the default as “any”. Therefore the type is left blank if no TYPE is specifically defined.
2016-11-26 13:35:58 +00:00