Commit graph

269 commits

Author SHA1 Message Date
Tobie Morgan Hitchcock
86b81c469e Add math.nearestrank() SQL function 2018-04-29 14:42:35 +01:00
Tobie Morgan Hitchcock
2878b29dde Add math.sqrt SQL function 2018-04-29 14:02:19 +01:00
Tobie Morgan Hitchcock
ec6a44f2d6 Regenerate codec files 2018-04-27 00:46:43 +01:00
Tobie Morgan Hitchcock
1a37472f3f Allow proper field names when removing a field 2018-04-27 00:46:36 +01:00
Tobie Morgan Hitchcock
ae303d062c Add FETCH expressions to LIVE SELECT queries 2018-04-24 23:59:49 +01:00
Tobie Morgan Hitchcock
add47a5ada Ensure correct ordering with same-compare values 2018-04-24 15:54:50 +01:00
Tobie Morgan Hitchcock
1f30035899 Add SQL FETCH functionality to SELECT statements 2018-04-22 00:10:52 +01:00
Tobie Morgan Hitchcock
35047ce04c Improve remote array record fetching 2018-04-22 00:10:51 +01:00
Tobie Morgan Hitchcock
abe117b7d3 Don’t mask the named return values
The defer function is expecting an expression value, not a nil value, and therefore we shouldn’t override the named return values in the function.
2018-04-20 23:49:45 +01:00
Tobie Morgan Hitchcock
7afe14ab1a Add ‘purge’ SQL function 2018-04-20 21:34:54 +01:00
Tobie Morgan Hitchcock
671e59d13f Remove unused ‘binary’ SQL function 2018-04-20 21:33:54 +01:00
Tobie Morgan Hitchcock
2d17f69a8c Ensure all SQL THINGs are processed correctly from JSON 2018-04-20 12:02:58 +01:00
Tobie Morgan Hitchcock
49ec33987f Update generated code 2018-04-14 21:59:16 +01:00
Tobie Morgan Hitchcock
7602b77c6d Store regex values in special sql.REGEX type 2018-04-14 21:56:29 +01:00
Tobie Morgan Hitchcock
dc700c34f6 Update 3rd party package dependencies 2018-04-14 19:24:25 +01:00
Tobie Morgan Hitchcock
2a74759a71 Enable IF and RUN statements in MultStatements 2018-04-14 18:36:28 +01:00
Tobie Morgan Hitchcock
ac19b552e5 Add SQL RUN query statement type 2018-04-14 17:55:05 +01:00
Tobie Morgan Hitchcock
917dbff89d Add math.fixed function for truncating floats 2018-04-13 20:48:48 +01:00
Tobie Morgan Hitchcock
3f7d7fc863 Add fuzzy string search to conditional SQL clauses 2018-04-13 20:34:52 +01:00
Tobie Morgan Hitchcock
be832029a7 Remove google and syslog logging 2018-04-05 08:51:44 +01:00
Tobie Morgan Hitchcock
b988b2c890 Remove ‘url’ and ‘color’ SQL field types 2018-04-05 00:35:08 +01:00
Tobie Morgan Hitchcock
b8972ae2c2 Mathmatical sql functions must be prefixed with ‘math’
All mathmatical functions must now be used by specifying the full function name. For example `avg` is now `math.avg`.
2018-04-05 00:34:09 +01:00
Tobie Morgan Hitchcock
0dc9ad339c Enable multiple expressions with database events
It is now possible to run multiple query expressions when an event on a table has occured. Query expressions can be separated with a semicolon, and will be run in the same transaction as the main query.
2018-04-04 19:20:07 +01:00
Tobie Morgan Hitchcock
085ba565b2 The SQL function string.reverse should take 1 argument 2018-04-02 23:44:51 +01:00
Tobie Morgan Hitchcock
ca392f87a7 Add ON SIGNUP and ON SIGNIN events to SQL SCOPE
It is now possible to run queries when a user signs-up or signs-in, by specifying multiple queries within an ON SIGNUP (…) clause, or a ON SIGNIN (...) clause.
2018-03-18 21:30:02 +00:00
Tobie Morgan Hitchcock
0dae9d2366 Add sql.MultExpression type 2018-03-18 21:01:29 +00:00
Tobie Morgan Hitchcock
f77daca0da Simplify subquery parsing 2018-03-18 20:01:41 +00:00
Tobie Morgan Hitchcock
3436634586 Add SQL either function for simplified IF ELSE clauses 2018-03-18 19:03:14 +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
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
cc8f4ec29e Use special SQL type for null values 2017-12-12 01:10:37 +00:00
Tobie Morgan Hitchcock
cacdf6dd49 Add SQL function for creating an array 2017-12-12 00:54:18 +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
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
19ce0b7cad Improve IF / ELSE statement formatting 2017-12-05 11:09:06 +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
e27a9e78a7 Enable password field type without need to quote 2017-12-05 01:13:50 +00:00
Tobie Morgan Hitchcock
449ce9a4a8 Make sure ORDER BY clauses are formatted correctly 2017-12-04 18:45:51 +00:00
Tobie Morgan Hitchcock
14d3539dbf Add SQL functions for parsing urls 2017-12-04 10:06:01 +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
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
Tobie Morgan Hitchcock
90953735d9 DEFINE and REMOVE SQL queries can not be inside transactions 2016-11-26 13:05:21 +00:00
Tobie Morgan Hitchcock
2fcc2e3668 Improve SQL INFO command to support namespaces 2016-11-23 12:53:27 +00:00
Tobie Morgan Hitchcock
75b5f2f412 Improve SQL DEFINE TOKEN statements 2016-11-22 19:10:42 +00:00
Tobie Morgan Hitchcock
063de926ed Improve SQL DEFINE LOGIN statements 2016-11-22 19:10:32 +00:00
Tobie Morgan Hitchcock
f150e5b587 Increase bit length of SQL TOKEN keys 2016-11-22 19:09:02 +00:00
Tobie Morgan Hitchcock
8cdae77483 Generate token keys in SQL and store as binary 2016-11-22 13:51:21 +00:00
Tobie Morgan Hitchcock
bb752eb124 Encrypt SQL LOGIN password immediately 2016-11-22 13:36:57 +00:00
Tobie Morgan Hitchcock
5bfe938fcf Enable authentication tokens on SCOPES 2016-11-21 18:58:07 +00:00