1
0
Fork 0
Commit Graph

41 Commits

Author SHA1 Message Date
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
Jan Steemann 792f57b760 issue #271: simple paths() function optimisations
When an "outbound" query is made with the paths() function, the optimiser will now use an index if a FILTER condition can exploit an index on .source.
Example query:

FOR p IN PATHS(users, relations, "outbound")
  FILTER p.source._id == "some-id"
  RETURN p

The index on p._id was not exploited before, because the optimiser did not know that variable "p" related to collection "users" and that the condition actually would filter on users._id (the variable name in the FILTER statement is "p.source._id).
Now, AQL functions can define callbacks which are called by the optimiser to try some function-specific optimisations.
The optimise callback for PATHS() tries to exploit indexes for filters that filter on the vertex collection (1st parameter to PATHS() call). Indexes can be exploited if the query is an "outbound" query and there are filters on "source", or if the query is an "inbound" query and there are filters on "destination". "anybound" queries will not be optimised
2012-10-26 13:32:01 +02:00
Jan Steemann fc0e64f812 issue #247 2012-10-17 13:07:44 +02:00
Jan Steemann a4b979222f fixed memory zone issues, memleaks 2012-10-10 19:05:16 +02:00
Jan Steemann 6d96d040fa added AQL function TO_LIST 2012-10-10 11:02:56 +02:00
Jan Steemann efd48664ef Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
Conflicts:
	Ahuacatl/ahuacatl-statement-dump.c
	Ahuacatl/ahuacatl-statement-dump.h
	Ahuacatl/ahuacatl-statementlist.c
	Ahuacatl/ahuacatl-tree-dump.c
	Ahuacatl/ahuacatl-tree-dump.h
	Ahuacatl/ahuacatl-tree-walker.h
	Makefile.files
	Makefile.in
	arangod/Ahuacatl/ahuacatl-tree-dump.c
	arangod/Ahuacatl/ahuacatl-tree-dump.h
	arangod/Ahuacatl/ahuacatl-tree-walker.c
	arangod/Ahuacatl/ahuacatl-tree-walker.h
2012-06-08 17:34:20 +02:00
Frank Celler d2c758d663 the great rename 2012-06-08 15:01:25 +02:00