James
1ff7e8d252
cleaning up
2014-11-03 10:42:16 +00:00
James
d12b5baf12
first try at replace-OR-with-IN optimizer rule.
2014-11-01 14:30:18 +00:00
Jan Steemann
31d875921f
removed TODOs
2014-10-30 00:45:55 +01:00
Max Neunhoeffer
b0e08bd8eb
Take out some debugging output.
2014-10-29 15:42:03 +01:00
Jan Steemann
ca15e72b14
fixed test
2014-10-29 12:33:10 +01:00
Jan Steemann
0e27ccbfdb
jslintified tests
2014-10-28 15:59:38 +01:00
Jan Steemann
f6b8f17dfa
less optimizations for simple plans
2014-10-28 15:01:44 +01:00
Jan Steemann
529bf386d7
fixed some API errors
2014-10-28 11:30:49 +01:00
Max Neunhoeffer
d564fca3d2
Make distribute-filtercalc-in-cluster switch-off-able.
2014-10-27 10:34:51 +01:00
Max Neunhoeffer
e9aded7b5e
Make distribute-sort-to-cluster switch-off-able.
2014-10-27 10:28:06 +01:00
James
602f03e4e3
adding distribute-in-cluster optimizer rule.
2014-10-14 10:19:27 +01:00
James
084078f61f
fixed tests for remove-unnecessary-remote-scatter and undistribute-remove-after-enum-coll, renamed distributeInCluster to scatterInCluster.
2014-10-09 08:45:34 +01:00
James
7a34d065b5
cleaning up and registering undistributeRemoveAfterEnumColl.
2014-10-01 10:43:54 +01:00
James
3daaaad855
fixing last
2014-09-30 08:48:29 +01:00
James
301ccddf83
Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel
2014-09-30 08:29:36 +01:00
James
d204ce4019
adding registration of the remove unnecessary remote scatter optimizer rule.
2014-09-30 08:29:21 +01:00
Jan Steemann
643ffa104d
moved isCoordinator to function of its own
2014-09-29 09:38:15 +02:00
Jan Steemann
188fe0c43c
accidently committed local modifications. revert
2014-09-29 09:31:27 +02:00
Jan Steemann
0d075dca3f
pass queryRegistry into the AQL functions
2014-09-29 09:30:32 +02:00
Willi Goesgens
53ee658be0
Implement moving of sortnode into the clusterable part of the query; add elements to the json serialisation of the gather node
2014-09-26 12:35:58 +02:00
Willi Goesgens
6c81f630a3
Add filter rule which moves Filters & Calculations into the parts of a Plan that is distributed to clusters.
2014-09-25 17:08:20 +02:00
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