1
0
Fork 0
Commit Graph

168 Commits

Author SHA1 Message Date
Jan Steemann 68232715f1 fixed compile warning 2014-09-19 09:05:52 +02:00
Jan Steemann 0b5c5ae3df added `maxNumberOfPlans` option 2014-09-18 23:56:09 +02:00
Jan Steemann bd62c36771 scatter / gather 0.0 2014-09-17 16:00:54 +02:00
Jan Steemann 54b5e7b034 slightly improved access to dynamic bounds 2014-09-16 15:10:43 +02:00
Jan Steemann a5c52998e8 remove redundant calculations 2014-09-12 15:10:48 +02:00
Jan Steemann 4ab6d8f658 fixed clone method for IndexRangeNode 2014-09-10 10:43:32 +02:00
Willi Goesgens 202636cee0 Refactor Optimizer ordering
- create enum with the different steps named
  - unify numbering scheme
  - deploy enum to all places where int level was used
  - add passN enum so you can jump to a Pass when calling addPlan

useIndexForSort:
  - remove inline deletion of dependend nodes of our (removed) sortnode
  - redirect to pass #5 so now possible obsolete CalculaionNodes are removed by the removeUnnecessaryCalculationsRule
2014-09-09 16:27:49 +02:00
Jan Steemann 2a49bf843d updated tests 2014-09-09 15:20:42 +02:00
Max Neunhoeffer bf1f11e651 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-29 16:57:56 +02:00
Max Neunhoeffer fa9e55eafb Finish taking into account multiple FILTER for IndexRangeRule. 2014-08-29 16:57:34 +02:00
Willi Goesgens 24128830ca Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2 2014-08-29 16:45:55 +02:00
Willi Goesgens 0cb12fc3f5 SortIndex: initialize the rangeInfo the proper way. 2014-08-29 16:45:20 +02:00
Jan Steemann 3b2cf352ad added functionality to activate/deactivate optimizer rules 2014-08-29 16:31:07 +02:00
Jan Steemann 91590f754f Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/OptimizerRules.cpp
2014-08-29 15:49:35 +02:00
Jan Steemann b8e12063e2 added "rules" output 2014-08-29 15:27:02 +02:00
James fd4b4e5df4 "proper" estimateCost method for IndexRangeNode. 2014-08-29 14:22:46 +02:00
Willi Goesgens be1c84f480 Exceptions: don't print Backtraces if the exception is handled in the subsequent js code. 2014-08-29 12:15:19 +02:00
Jan Steemann 43ec93109f optimizer rules are now kept in a sorted map
rules can optionally be disabled at runtime
2014-08-29 00:08:29 +02:00
Max Neunhoeffer 665777c59a Make dummyRule local in the optimizer. 2014-08-28 14:49:33 +02:00
Jan Steemann e686fcaa85 fixed unused variables warning 2014-08-28 14:18:14 +02:00
Jan Steemann 844955cafd disabled debug output 2014-08-28 14:10:41 +02:00
Jan Steemann 531bb921ff disabled broken rules 2014-08-28 14:04:32 +02:00
Max Neunhoeffer 9b49328218 Rearrange levels for optimizer rules. Use rules multiple times. 2014-08-28 13:46:46 +02:00
Max Neunhoeffer e1b557ff20 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/Optimizer.cpp
2014-08-28 13:33:33 +02:00
Max Neunhoeffer 338a9c6c54 Implement permutation of EnumerateCollectionNodes.
Also: restructure leveling of rules.
And:  remove some debugging output (and add some other).
2014-08-28 13:28:04 +02:00
Jan Steemann 2eb38c9657 remove-redundant-sorts, initial 2014-08-28 12:39:28 +02:00
Jan Steemann 2d2df1b5da added TODO 2014-08-28 00:18:19 +02:00
Jan Steemann a409f37dc6 re-use already declared optimizer rules for all queries 2014-08-28 00:03:23 +02:00
Jan Steemann b10ae65d58 rules have names 2014-08-27 23:53:53 +02:00
Max Neunhoeffer b2d44cd35e Add show() for ExecutionPlans. 2014-08-27 22:10:38 +02:00
Max Neunhoeffer c079de3a94 Adjust a cout message. 2014-08-27 16:58:20 +02:00
Max Neunhoeffer 4441316115 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-27 16:52:57 +02:00
Max Neunhoeffer 449d0cd961 Completely redo the optimizer. 2014-08-27 16:52:38 +02:00
James ad3e6d22a1 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-26 13:02:58 +02:00
James bf952d37be IndexRangeBlock working for hash indexes. 2014-08-26 13:02:31 +02:00
Willi Goesgens 10603f904d Walker: the process of walking now is aborted if the before-hook returns true. 2014-08-25 15:48:21 +02:00
James 033735fbba removing debug output and commenting out useIndexRange. 2014-08-25 13:12:19 +02:00
James c801fc4992 deserialising of IndexRangeNode finally working. 2014-08-25 13:05:22 +02:00
Jan Steemann 04fbe668cc Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-22 17:58:12 +02:00
Jan Steemann 1d34fa4896 stub for IndexRangeBlock 2014-08-22 17:58:02 +02:00
Max Neunhoeffer 4b229c5873 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	lib/Basics/JsonHelper.h
2014-08-22 17:02:06 +02:00
Max Neunhoeffer 8fd6cd1184 Implement clear unneeded registers. 2014-08-22 17:00:53 +02:00
Willi Goesgens 8a402683ed Optimizers: start implementing the sorting via indexes. 2014-08-22 16:48:52 +02:00
Jan Steemann 55608ceae2 use index nodes 2014-08-22 13:53:01 +02:00
Jan Steemann 4482d840ac added moveFiltersUpRule 2014-08-21 16:54:01 +02:00
Jan Steemann 0205f651a6 working on moveCalculationsUpRule 2014-08-21 15:54:40 +02:00
Jan Steemann 51c89c6829 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionPlan.cpp
	arangod/Aql/ExecutionPlan.h
2014-08-21 15:24:11 +02:00
Jan Steemann 1d78071176 fixed filter removal optimizer rule 2014-08-21 13:57:08 +02:00
James bcaf26cba1 removing debug comments. 2014-08-21 13:14:41 +02:00
Jan Steemann 670b407185 disable filters that never produce results 2014-08-20 18:24:52 +02:00
Jan Steemann 3fe8831a03 fixed optimizer bug due to duplicate variable representation 2014-08-20 14:18:33 +02:00
Jan Steemann 52566a2975 optimizations for list expressions 2014-08-20 11:19:28 +02:00
Jan Steemann 592ada1d36 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-08-19 18:58:32 +02:00
Jan Steemann 99ce138c12 fixed creation of subqueries from JSON input 2014-08-19 18:51:11 +02:00
James 86b4ad512e fixing merge problems from last. 2014-08-19 17:10:04 +02:00
James 447282d0bd Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/Optimizer.cpp
	arangod/Aql/OptimizerRules.cpp
2014-08-19 17:00:16 +02:00
Jan Steemann 232cc163c2 renamed optimizer rule 2014-08-19 16:10:57 +02:00
Jan Steemann 79e68e72e3 fixed removeUnnecessaryCalc 2014-08-19 15:46:04 +02:00
Jan Steemann e4abcdc843 added optimizer rule 2014-08-19 13:59:05 +02:00
James 857083adc9 starting to add optimizer rules which create IndexRangeNodes. 2014-08-19 12:02:50 +02:00
Jan Steemann 1030ea1b7c working on optimizer rules 2014-08-19 10:22:08 +02:00
Jan Steemann b923e660e8 comments 2014-08-18 16:58:31 +02:00
Jan Steemann f41e0313fe added optimization rule for constant filters (not yet working) 2014-08-18 16:53:45 +02:00
Max Neunhoeffer 9e91d9bba3 Finish first optimization rule: remove unnecessary calcs.
So far not activated, because test suite crashes.
Need to look into details.
2014-08-16 00:09:11 +02:00
Max Neunhoeffer f671fb7e36 Add the first actual optimization rule (as a stub). 2014-08-15 16:54:53 +02:00
Max Neunhoeffer b5d2bf6932 Sort out memory management of plans with the optimizer.
Slightly adapt optimization strategy.
2014-08-15 15:05:06 +02:00
Max Neunhoeffer 50851bfcba 2nd try at infrastructure for optimizer. 2014-08-14 14:33:03 +02:00
Max Neunhoeffer 1de9f0bfe5 Create infrastructure for the query optimizer. 2014-08-14 11:16:21 +02:00