1
0
Fork 0
Commit Graph

17 Commits

Author SHA1 Message Date
Jan Steemann c8b18a338a fixed AQL optimiser bug, related to OR-combined conditions on the same attribute 2012-11-16 12:15:33 +01:00
Jan Steemann fd6eef1adc fixed cases with incorrectly optimised queries, leading to wrong results
The issue was caused when the optimiser decided to use an index on an attribute, but the attribute access was contained in a logical OR as follows:

FILTER (c.<indexed-column> == <value> || c.<some-other-column> == c.<indexed-column>)

In this case, the index on <indexed-column> was accessed with the constant <value>, but the right-hand side of the OR was ignored, leading to possibly incomplete results
2012-11-07 18:52:25 +01:00
Jan Steemann 7d9e0a18b5 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:22:48 +02:00
Jan Steemann a4b979222f fixed memory zone issues, memleaks 2012-10-10 19:05:16 +02:00
Jan Steemann 5da08eb283 allow AQL to use indexes in additional cases 2012-10-08 12:51:27 +02:00
Jan Steemann 135af312da removed some old debug macros 2012-09-11 09:56:57 +02:00
Jan Steemann a70d4f2920 issue #137: exploit indexes for FILTER patterns collection.attribute operator collection.attribute 2012-08-06 12:56:11 +02:00
Jan Steemann 34441137df preparation work for issue #137 2012-08-06 10:34:56 +02:00
Jan Steemann 8326bb2abf preparation work for issue #137 2012-08-06 10:30:15 +02:00
Jan Steemann fa3b6a74fa fixed some range optimiser bugs, added test cases 2012-06-29 11:30:44 +02:00
Jan Steemann bafc974623 added test cases for range optimisation, fixed some range optimiser bugs 2012-06-29 10:23:04 +02:00
Jan Steemann 12a5eb5e4e fixed clang warnings 2012-06-26 11:36:07 +02:00
Jan Steemann e3a075057f reference accesses can now use indexes 2012-06-13 12:07:29 +02:00
Jan Steemann 3cb8b653cd 1st steps for reference access optimisations 2012-06-12 17:58:30 +02:00
Jan Steemann 381fc2f9f9 optimiser change: collections are annotated with hints on how they are accessed. this info is picked up by the explain command 2012-06-12 16:50:36 +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