1
0
Fork 0
arangodb/arangod
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
..
Actions Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2012-10-22 21:04:12 +08:00
Ahuacatl issue #271: simple paths() function optimisations 2012-10-26 13:32:01 +02:00
BitIndexes various changes for windows 2012-10-22 20:51:31 +08:00
Documentation documentation for #265 2012-10-24 12:56:52 +02:00
GeoIndex fixed some memory zone issues 2012-10-10 15:17:46 +02:00
HashIndex Merge branch '1.1' of github.com:triAGENS/ArangoDB into devel 2012-10-20 22:37:25 +02:00
IndexIterators
IndexOperators
MRServer upgraded to Doxygen 1.8.x 2012-10-18 16:38:20 +02:00
PriorityQueue various changes for windows 2012-10-22 20:51:31 +08:00
RestHandler removed "reuseID" 2012-10-26 12:36:13 +02:00
RestServer merge problems 2012-10-22 21:51:23 +08:00
SkipLists Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2012-10-22 21:04:12 +08:00
Utils renamed simple_collection to document_collection 2012-09-14 14:46:37 +02:00
V8Server change result output of bidirectional edges 2012-10-25 18:07:10 +02:00
VocBase bugfix wrong error message with exit() 2012-10-26 12:59:20 +02:00
Makefile.files no longer used 2012-10-11 19:58:31 +02:00