1
0
Fork 0
Commit Graph

56 Commits

Author SHA1 Message Date
Jan Steemann 3679fdfe68 allow user functions as AQL function call parameters 2014-01-06 12:57:03 +01:00
Jan Steemann ca1e6288a2 allow functions results as parameters in all function calls 2014-01-06 11:14:54 +01:00
Jan Steemann 26fc85f88c allow references as function parameters 2013-12-04 22:05:44 +01:00
Jan Steemann 9e78ab5af5 added NTH and POSITION 2013-11-04 18:24:03 +01:00
Jan Steemann e576ee5662 allow dynamic parameters in DOCUMENT() 2013-10-30 16:17:37 +01:00
Jan Steemann 73dd3f9185 made AQL DOCUMENT function polymorphic 2013-10-30 15:01:38 +01:00
Jan Steemann 2c434d3b20 added DOCUMENT_HANDLE function 2013-10-29 11:09:47 +01:00
Jan Steemann 1af5aa6b45 block compaction & datafile removal while dumping 2013-08-30 17:25:09 +02:00
Jan Steemann e6d8687250 added AQL MINUS function 2013-08-26 22:25:30 +02:00
Jan Steemann d0961244c6 added range support for AQL 2013-07-19 18:38:13 +02:00
Jan Steemann 937c843c38 added AQL INTERSECTION function 2013-07-18 16:43:31 +02:00
Jan Steemann e359dc29dd INCOMPATIBLE CHANGE: changed AQL user function namespace resolution operator from `:` to `::`
AQL user-defined functions were introduced in ArangoDB 1.3, and the namespace resolution
operator for them was the single colon (`:`). A function call looked like this:

    RETURN mygroup:myfunc()

The single colon caused an ambiguity in the AQL grammar, making it indistinguishable from
named attributes or the ternary operator in some cases, e.g.

    { mygroup:myfunc ? mygroup:myfunc }

The change of the namespace resolution operator from `:` to `::` fixes this ambiguity.

Existing user functions in the database will be automatically fixed when starting ArangoDB
1.4 with the `--upgrade` option. However, queries using user-defined functions need to be
adjusted on the client side to use the new operator.
2013-07-18 12:02:28 +02:00
Jan Steemann ca6b184286 added TRI_JSON_STRING_REFERENCE 2013-07-10 17:00:29 +02:00
Jan Steemann 74489d9f93 OOM handling 2013-07-02 17:33:31 +02:00
Jan Steemann d31573a8b4 fixed a few type issues, updated TODOs 2013-06-07 11:31:42 +02:00
Jan Steemann 8e23b92fb9 made "limit" an optional parameter for AQL NEAR() 2013-04-21 15:45:13 +02:00
Jan Steemann b667e458fc fixed error messages 2013-04-16 11:55:17 +02:00
Jan Steemann b6925a7b7b transactions 2013-04-11 19:06:55 +02:00
Jan Steemann badf20e47e added AQL function NEIGHBORS 2013-04-09 18:14:46 +02:00
Jan Steemann ed10d9b6aa AQL user functions 2013-04-05 12:50:44 +02:00
Jan Steemann f7a5cf4cf3 transactions 2013-04-03 14:40:23 +02:00
Frank Celler f810711a79 FreeBSD port 2013-04-02 18:43:10 +02:00
Frank Celler 1aa5109fa3 updated disclaimer 2013-03-13 17:03:18 +01:00
Jan Steemann 46a7f3e1a2 added AQL test case 2013-03-01 11:09:36 +01:00
Jan Steemann 1fde3ad1e9 fixed optimiser problem with PATHS 2013-03-01 10:11:38 +01:00
Jan Steemann 8ec5735418 added tests for SUM(), MEDIAN() etc. 2013-02-28 10:56:52 +01:00
Jan Steemann 14c3863a17 added tests for LEFT(), RIGHT() 2013-02-28 09:38:03 +01:00
Jan Steemann 16586c6ee1 make AQL REVERSE() work on strings, too 2013-02-27 14:16:40 +01:00
Jan Steemann 3e04acf3ee added AQL functions KEEP() and UNSET() 2013-02-14 16:14:22 +01:00
Jan Steemann ca81913abb added AQL function EDGES() 2013-02-07 22:53:50 +01:00
Jan Steemann f16f88a2e6 added docs for CONTAINS(), added LIKE() 2013-02-06 11:40:45 +01:00
Jan Steemann d4d7123cc8 issue #363: renamed TREE to TRAVERSAL_TREE 2013-01-28 17:33:17 +01:00
Jan Steemann 0be8df6082 added experimental AQL TREE() function. 2013-01-24 18:08:33 +01:00
Jan Steemann ac91506da4 fixed issues reported by jslint, added AQL ATTRIBUTES() 2013-01-24 17:25:48 +01:00
Jan Steemann 8fc4b97710 shortened internal aql function names 2013-01-24 14:55:12 +01:00
Jan Steemann 09f0a91595 make MATCHES() AQL function variadic 2013-01-23 10:25:38 +01:00
Jan Steemann e0d3eb53e0 added MATCHES 2013-01-22 13:50:30 +01:00
Jan Steemann acd9c5c214 cppcheck fixes 2013-01-21 12:05:25 +01:00
Jan Steemann 8bf8a733a2 added traversal function 2013-01-13 13:48:23 +01:00
Jan Steemann 43dee1dcf4 fulltext queries from AQL, documentation 2013-01-11 22:25:08 +01:00
Jan Steemann 7be548ab5d issue #271: optimise LENGTH(p.edges) operator const-value 2013-01-10 01:08:12 +01:00
Jan Steemann 7f93615dc6 issue #326 2012-12-19 17:22:01 +01:00
Jan Steemann 58686a8c2e issue #323 2012-12-17 10:18:46 +01:00
Jan Steemann b5d0457f3a fixed some issues reported by cppcheck 2012-12-12 18:42:11 +01:00
Jan Steemann a9df4d22cb extended AQL document() function to take id lists 2012-12-05 14:10:06 +01:00
Jan Steemann e4e95fabfe added AQL function DOCUMENT() 2012-12-05 11:47:03 +01:00
Jan Steemann 1811ce9186 fixed some issues found by cppcheck 2012-12-04 18:21:29 +01:00
Jan Steemann 0f8767a996 issue #287 2012-11-20 18:22:31 +01:00
Jan Steemann 37750da396 * fixed issue #283: AQL LENGTH() now works on documents, too 2012-11-19 14:00:09 +01:00
Jan Steemann a68fff16e2 issue #271: allow very simple optimisations for AQL function usage
This change will create field access hints also for AQL function calls.
Calls to functions will not be optimised, but meaningless usages of functions will not be optimised away.
For example:

FOR p IN PATHS(users, relations, "outbound")
  FILTER LENGTH(p.edges) > 0 && LENGTH(p.edges) < 0
  RETURN p

The FILTER in the above query uses the LENGTH() function two times in a way that no result will be produced.
Before, function calls were excluded from expression collapsing and simplification.
Now, multiple calls to the same function with the same call argument might be optimised away if the calls will
lead to no results being produced. This will only work for functions that are called with exactly one argument
which also must be an attribute name, and when the function calls are used in relational operations.
2012-10-26 13:32:01 +02:00