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