1
0
Fork 0
arangodb/js/server
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
..
modules issue #262 2012-10-25 10:57:26 +02:00
tests Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2012-10-24 10:46:38 +02:00
ahuacatl.js issue #271: simple paths() function optimisations 2012-10-26 13:32:01 +02:00
arango-dfdb.js datafile check 2012-07-28 20:57:03 +02:00
arango-password.js removed user manager 2012-09-12 23:37:39 +02:00
arango-upgrade.js added datafile upgrade 2012-10-25 11:51:45 +02:00
server.js added autoload for modules 2012-10-20 22:07:50 +02:00