Max Neunhoeffer
59c1935466
Get rid of some TODOs and FIXMEs.
2014-10-29 11:25:30 +01:00
Jan Steemann
529bf386d7
fixed some API errors
2014-10-28 11:30:49 +01:00
Max Neunhoeffer
5eed22ad5f
Repair distribute-sort-to-cluster rule and make it less aggressive.
2014-10-27 14:02:08 +01:00
Jan Steemann
b5c222b9b8
determine whether calculations may run on a DB server
2014-10-27 12:04:06 +01:00
James
c99cc155b6
fixing undistribute-remove-after-enum-coll optimizer rule.
2014-10-25 14:24:57 +01:00
Jan Steemann
d34c9ade30
re-enable optimizer rule
2014-10-23 16:56:48 +02:00
James
89d554c49b
remove some redundant comment
2014-10-21 17:27:39 +01:00
James
dc357b96bf
fixing distribute in cluster optimizer rule.
2014-10-21 11:04:38 +01:00
James
dcf427071c
shardIds -> shardKeys in distribute to cluster.
2014-10-17 11:07:33 +01:00
James
32f4216005
updating distribute-in-cluster opt rule
2014-10-17 10:22:26 +01:00
Jan Steemann
912a8162fb
some renaming
2014-10-16 17:23:50 +02:00
James
9f942d0ce3
finished first version of DistributeBlock/Node.
2014-10-15 10:53:09 +01:00
James
adca1117ff
removing debug output, up dating tests.
2014-10-14 11:29:14 +01:00
James
602f03e4e3
adding distribute-in-cluster optimizer rule.
2014-10-14 10:19:27 +01:00
Jan Steemann
7be268c07c
changed AQL optimizer to not throw
2014-10-14 10:14:40 +02: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
d2b86de370
fixed tyopo in comment
2014-10-08 10:55:58 +01:00
Jan Steemann
c2f0265d7d
fixed optimizer rule remove-unnecessary-remote-scatter
2014-10-07 13:21:05 +02:00
James
4a8ef130f5
DistributeBlock getOrSkipSome method minus the hard part.
2014-10-07 10:33:37 +01:00
James
95fd279a52
distribution node/block declarations etc.
2014-10-06 12:57:09 +01:00
Jan Steemann
bf31161ef5
activated if-statement
2014-10-06 10:40:04 +02:00
James
029e443b12
removing debug output
2014-10-04 12:21:34 +01:00
James
8bd3a9718c
undistributeRemoveAfterEnumColl now more or less works for REMOVE x._key in coll
2014-10-03 11:32:40 +01:00
James
c6c0387e50
undistributeRemoveAfterEnumColl optmizer rule now working
2014-10-03 10:13:11 +01:00
Jan Steemann
0e103d33dc
added assertion
2014-10-03 01:37:04 +02:00
James
16d54d6694
snapshot
2014-10-02 10:06:45 +01:00
Jan Steemann
7f9da1c397
asserts
2014-10-02 10:34:08 +02:00
Jan Steemann
0d9cdfc87c
struct Index
2014-10-01 15:35:16 +02:00
James
7a34d065b5
cleaning up and registering undistributeRemoveAfterEnumColl.
2014-10-01 10:43:54 +01:00
James
2fd8c2b185
prelim version of undistributeRemoveAfterEnumColl
2014-10-01 10:17:36 +01:00
James
22597af5ac
version of removeUnnecessaryRemoteScatter which changes the plan in place.
2014-09-30 10:10:03 +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
f3015bd70a
fixed indentation
2014-09-29 16:52:45 +02:00
Jan Steemann
b31987fea7
pass data to RemoteNode
2014-09-29 16:36:52 +02: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
James
d53da7ce4a
Optimiser rule to get rid of a RemoteNode->ScatterNode combination
2014-09-27 16:43:08 +01:00
Jan Steemann
c3ce45e0dd
added block instanciation for coordinator, v0.0.0
2014-09-26 20:17:42 +02:00
Jan Steemann
f462c5f620
add database and collection info to gather nodes
2014-09-26 13:58:02 +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
Max Neunhoeffer
591f7acb8b
Fix problems with variable bounds.
2014-09-22 23:30:22 +02:00
Jan Steemann
d03faffc53
remove subqueries that produce results that are not used in a query
2014-09-18 23:03:43 +02:00
Jan Steemann
4a2693cebd
removed #if
2014-09-18 13:23:38 +02:00
Jan Steemann
50571f84db
changed node detection for cluster
2014-09-18 13:21:58 +02:00
Max Neunhoeffer
ce2f822521
Merge branch 'aql1' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-18 09:12:25 +02:00
Jan Steemann
5c552d4137
optimizer rule for scatter / gather
2014-09-17 17:29:36 +02:00
Max Neunhoeffer
ae5d231c5d
Add a comment.
2014-09-17 16:43:40 +02:00
Max Neunhoeffer
e054b738c9
Take out some debugging messages.
2014-09-17 16:41:49 +02:00
Jan Steemann
bd62c36771
scatter / gather 0.0
2014-09-17 16:00:54 +02:00
Jan Steemann
db70b9bfcb
added not-yet used nodes for remote, scatter and gather
2014-09-17 14:31:37 +02:00
Jan Steemann
654c2ba0fe
backwards iteration, not yet working
2014-09-17 00:40:24 +02:00
Jan Steemann
992ac23450
fixed ranges
2014-09-16 15:48:33 +02:00
Jan Steemann
54b5e7b034
slightly improved access to dynamic bounds
2014-09-16 15:10:43 +02:00
Jan Steemann
677e681b23
adjusted test
2014-09-15 18:17:42 +02:00
Max Neunhoeffer
6cf8b0cf75
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-15 16:16:33 +02:00
Max Neunhoeffer
855a695764
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/ExecutionBlock.cpp
arangod/Aql/RangeInfo.cpp
arangod/Aql/RangeInfo.h
2014-09-15 16:16:21 +02:00
Max Neunhoeffer
77d6f41b5c
Fix more bugs in variable bounds.
2014-09-15 16:10:54 +02:00
Jan Steemann
a31cb2af30
disable sort optimizations under certain conditions
2014-09-15 15:28:41 +02:00
Max Neunhoeffer
4a1e3d6b9c
Fix bug with variable bounds: must not access document set in this node.
2014-09-15 13:37:38 +02:00
Jan Steemann
5a1dc63946
fixed tons of compile errors in VS
2014-09-15 12:04:49 +02:00
Max Neunhoeffer
511930a8c1
Make variable bounds compile-time switchable.
2014-09-14 22:30:45 +02:00
Max Neunhoeffer
025d57175e
Disable variable bounds to let tests run again.
2014-09-14 22:26:57 +02:00
Max Neunhoeffer
e617c091e7
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-14 21:47:46 +02:00
Max Neunhoeffer
b48d1c1270
Fix more bugs.
2014-09-14 21:47:37 +02:00
Jan Steemann
ed7e5d0e67
allow primary key access via _id attribute, too
2014-09-14 00:46:44 +02:00
Jan Steemann
4f6f2ac34f
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/ExecutionBlock.cpp
2014-09-12 17:03:04 +02:00
Max Neunhoeffer
0ae0f126b2
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-12 15:24:28 +02:00
Max Neunhoeffer
465cf950c9
Try to fix bug with variable bounds.
...
Not yet finished.
2014-09-12 15:24:08 +02:00
Jan Steemann
6552490cbe
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/ExecutionNode.cpp
arangod/Aql/ExecutionNode.h
arangod/Aql/ExecutionPlan.cpp
arangod/Aql/OptimizerRules.cpp
2014-09-12 15:17:50 +02:00
Jan Steemann
a5c52998e8
remove redundant calculations
2014-09-12 15:10:48 +02:00
Max Neunhoeffer
35ffe6b9e4
Restructure who has Ast and ExecutionPlan.
...
Not compiling yet.
2014-09-12 14:44:20 +02:00
Jan Steemann
2767bdc7e0
use edge index on both _from and _to
2014-09-11 18:19:05 +02:00
Jan Steemann
c3b90a1037
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-11 17:02:03 +02:00
Jan Steemann
34beb65148
use primary index & edge index
2014-09-11 17:01:53 +02:00
Max Neunhoeffer
6c69129a71
Start computing the variable bounds at runtime.
2014-09-11 16:58:59 +02:00
Max Neunhoeffer
31e02e42cb
Instanciate expressions for variable bounds.
...
And various cleanups.
2014-09-11 14:28:38 +02:00
Max Neunhoeffer
c79b95b048
Activate finding of variable bounds.
2014-09-10 16:35:33 +02:00
Max Neunhoeffer
27a9dd050e
Variable bounds are recognised.
2014-09-10 16:10:02 +02:00
Max Neunhoeffer
31a1c95e40
Further cleanup of IndexRangeRule and ranges infrastructure.
...
Prepare for variable bounds.
2014-09-10 12:07:30 +02:00
Max Neunhoeffer
dfed690d56
Further cleanup of EQ method in useIndexRange rule.
2014-09-10 11:36:11 +02:00
Max Neunhoeffer
6795f425ab
Cleanup buildRangeInfo.
2014-09-10 11:15:43 +02:00
Max Neunhoeffer
7dcdd27891
Merge branch 'aql2' into mmh
2014-09-10 09:41:54 +02:00
Max Neunhoeffer
b98cb86605
Take out debugging output.
2014-09-10 09:38:53 +02:00
Willi Goesgens
3e6e008a81
useIndexForSort:
...
- redirect to pass #5 here too, so now possible obsolete CalculaionNodes are removed by the removeUnnecessaryCalculationsRule
2014-09-09 17:19:49 +02:00
Max Neunhoeffer
8aa75f01a5
Snapshot to move home.
2014-09-09 17:05:47 +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
Jan Steemann
639a026c66
fixed tests
2014-09-09 09:57:52 +02:00
Jan Steemann
4bda3e3979
finished test for remove-redundant-sorts
2014-09-08 17:33:11 +02:00
Jan Steemann
8fdb2f05af
added positive list of nodetypes
2014-09-08 10:39:59 +02:00
Jan Steemann
478007089a
do not push sort beyond limit, collect etc.
2014-09-08 10:31:44 +02:00
Willi Goesgens
02207d5f70
Cost estimates: IndexRangeNodes without range have to be more expensive than ones with.
2014-09-05 14:23:25 +02:00
Willi Goesgens
ebbb9c34b6
Redundand-Sort: implement removing of left item superseeding the sort
2014-09-04 17:53:20 +02:00
Willi Goesgens
e23cbf1add
Work on Filter to IndexRangeNode tests
2014-09-04 16:33:37 +02:00
Willi Goesgens
61d1bfa76b
SortIndex: only indicate we modified a rule if we realy did.
2014-09-03 09:47:08 +02:00
Willi Goesgens
021f3371f2
SortIndex: move the unlinking of the sort attributes after unlinking the sort itself
2014-09-01 18:30:49 +02:00
Willi Goesgens
3b93d0847d
SortIndex: fix the way we register our results to the framework
2014-09-01 13:33:18 +02:00
Max Neunhoeffer
ecf379c113
Fix a bug with the level management of the useSortRule.
2014-08-30 00:54:47 +02:00
James
b6f9f11e5e
added all node types to FilterToEnumCollFinder.
2014-08-29 17:44:32 +02:00
James
38520d49eb
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-29 17:17:59 +02:00
James
21febb33ac
cleaning up RangeInfo stuff.
2014-08-29 17:16:08 +02:00
Willi Goesgens
40361d63dc
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-29 17:10:35 +02:00
Willi Goesgens
1f0ce045d3
remove debug output
2014-08-29 17:10:20 +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
0cb12fc3f5
SortIndex: initialize the rangeInfo the proper way.
2014-08-29 16:45:20 +02:00
Max Neunhoeffer
4ae076db40
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-29 15:51:08 +02:00
Max Neunhoeffer
65e765478d
Make IndexRange rule look for multiple variables in FILTERs.
...
Still TODO: Pickup further variables when seeing FILTERs.
2014-08-29 15:49:37 +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
e1ee728a75
remove debug prints.
2014-08-29 14:41:20 +02:00
Willi Goesgens
67894665f4
revert #cef3864e29cfb5308df55e19a2186af07c21d3b8 which was a wrong conflict resolution.
2014-08-29 14:38:39 +02:00
Willi Goesgens
d6881ddabd
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-29 12:27:33 +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
James
16ef52bd81
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-29 11:52:46 +02:00
James
46b40015ee
renovating RangeInfo stuff to avoid mem leaks.
2014-08-29 11:52:19 +02:00
Max Neunhoeffer
c9193e44b8
Sort out some exception issues.
2014-08-29 11:37:01 +02:00
Max Neunhoeffer
f780cff9c6
Fix a bug with a new plan and insert a catch.
2014-08-29 11:09:18 +02:00
Jan Steemann
c47807e2ee
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 16:56:05 +02:00
James
a14be1d3be
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-28 16:55:39 +02:00
Jan Steemann
687c56f923
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 16:55:22 +02:00
James
4b5e42c52a
bugfixes and leaks fixed.
2014-08-28 16:55:18 +02:00
Jan Steemann
d3624c3244
attempt to fix infinite ranges in skiplists
2014-08-28 16:54:45 +02:00
Max Neunhoeffer
16a5899e8f
Add a FIXME.
2014-08-28 16:52:03 +02:00
Max Neunhoeffer
c1568d94f0
Improve a comment.
2014-08-28 16:50:26 +02:00
Jan Steemann
fd5e687ef0
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 15:34:17 +02:00
Jan Steemann
694d64da3c
do not optimize away non-deterministic functions
2014-08-28 15:34:06 +02:00
Max Neunhoeffer
665777c59a
Make dummyRule local in the optimizer.
2014-08-28 14:49:33 +02:00
James
05dac4f52d
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/Optimizer.cpp
2014-08-28 14:41:51 +02:00
James
1deed3ebce
fixed bugs useIndexRange.
2014-08-28 14:39:26 +02:00
Jan Steemann
7ba6b17d45
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 13:54:37 +02:00
Jan Steemann
ca814c9733
remove-redundant-sorts
2014-08-28 13:54:17 +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
12e15b6c2e
Adjust the output level of useSortIndex rule.
2014-08-28 13:29:44 +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
Willi Goesgens
9d4b1b1c88
SortNode: our variables can also be in other ExecutionNodes then the Calculation node. Take this into account.
...
SortIndex optimizer: when looking at our properties only check Calculation nodes, ignore other types of ExecutionNodes
2014-08-28 11:48:23 +02:00
Willi Goesgens
7b9b3d8570
fix memory leak in parametrization of new IndexRangeNodes
2014-08-28 09:20:47 +02:00
Jan Steemann
37295fb2b1
changed wrong comments
2014-08-27 23:54:06 +02:00
Max Neunhoeffer
f279c40262
Fix an early destruction bug.
2014-08-27 22:10:18 +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
Willi Goesgens
da6bac560d
SortIndex optimizer: clean up namingschemes, add documentation.
2014-08-27 16:09:25 +02:00
Willi Goesgens
e67a2ed36a
SortIndex optimizer:
...
- remove SortNodes which are superseeded by an IndexRangeNode
- calculate the properties of an SortNode before entering the walker
- add abstraction class
2014-08-27 15:39:37 +02:00
James
61ee74e0fd
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 14:52:05 +02:00
Willi Goesgens
5e75ec8bb5
Expression:
...
- add function isSimpleAccessReference() to check whether it is a coll.attr.attr
- add function getAccessNRef() to retrieve pair("attr.attr", "coll"),
SortIndex optimizer:
- use the new functionality to get better readable code.
rename indexes -> indices
2014-08-26 17:26:46 +02:00
Willi Goesgens
18d308af0f
SortNode: add method that looks up the expressions referenced by the Sortnode, and returns them paired with ASC/DESC.
2014-08-26 15:38:55 +02:00
James
851420c723
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-26 15:19:13 +02:00
Willi Goesgens
ff4e00eb86
SortIndex optimizer:
...
- rename getIndexes to getIndexesUnordered
- add CompareIndex & getIndexesOrdered to retrieve a list which does an ordered match on the available skiplist indices
- fetch the ordered matching indices
- only remove the sortnode if its a full qualified match.
2014-08-26 13:53:19 +02:00
James
b8415aaca5
making useIndexRange abort if it encounters a limit node.
2014-08-26 13:11:31 +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
27063a08b5
SortIndex optimizer:
...
- group the ASC/DESC
- find out the real attribute name for nested attributes
2014-08-26 09:48:20 +02:00
Max Neunhoeffer
a7b3f4fe1f
Take out TODO line.
2014-08-26 09:46:00 +02:00
Max Neunhoeffer
4fecd85e4c
Add a destructor to delete _ranges in FilterToEnumCollFinder.
2014-08-26 09:45:32 +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
8896a01753
making the arguments of IndexRangeNode more general.
2014-08-25 15:11:54 +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
b978133e1b
fixed compile warning
2014-08-22 20:05:44 +02:00
Jan Steemann
768c3b9bbc
comments
2014-08-22 18:03:42 +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
Willi Goesgens
8a402683ed
Optimizers: start implementing the sorting via indexes.
2014-08-22 16:48:52 +02:00
James
8559f60766
fixed bugs in last.
2014-08-22 16:25:23 +02:00
James
931aaee618
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-22 16:19:01 +02:00
James
4c49a3be5e
deserialising of IndexRangeNode almost completed.
2014-08-22 16:17:10 +02:00
Jan Steemann
514c2e74f3
indentation
2014-08-22 13:56:01 +02:00
Jan Steemann
55608ceae2
use index nodes
2014-08-22 13:53:01 +02:00
Jan Steemann
30c6b26b6d
add plans!
2014-08-22 10:44:19 +02:00
James
fcb3342729
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-21 18:41:24 +02:00
James
fecaccf37f
fixing comparison of bounds.
2014-08-21 18:40:02 +02:00
James
89ba89bf77
added method to check if a range info contains a unique value, and cleaned up FilterToEnumCollFinder.
2014-08-21 17:39:06 +02:00
James
409e663818
fixed bugs in comparison of tightness of range bounds, and made it so that invalid ranges insert NoResultNode in the plan.
2014-08-21 17:14:42 +02:00
Jan Steemann
4482d840ac
added moveFiltersUpRule
2014-08-21 16:54:01 +02:00
Jan Steemann
a1fcf9b28e
activate rule to move calculations up
2014-08-21 16:38:49 +02:00
Jan Steemann
89e74559ae
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-21 15:54:48 +02:00
Jan Steemann
0205f651a6
working on moveCalculationsUpRule
2014-08-21 15:54:40 +02:00
Max Neunhoeffer
5aaa4cf899
Merge.
2014-08-21 15:50:16 +02:00
James
053ab548ba
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-21 15:48:58 +02:00
James
4d17c347cc
bug fixes in last.
2014-08-21 15:38:42 +02:00
James
deaa8f1271
only applying hash indexes if ranges indicate equality.
2014-08-21 15:27:53 +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
Max Neunhoeffer
321ab35551
Finish _parents in ExecutionNodes business.
2014-08-21 15:15:46 +02:00
Jan Steemann
1d78071176
fixed filter removal optimizer rule
2014-08-21 13:57:08 +02:00
Max Neunhoeffer
af93a13209
Fix instanciation of NoResultsNode.
2014-08-21 13:45:46 +02:00
James
7b5f52069a
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-21 13:16:24 +02:00
James
bcaf26cba1
removing debug comments.
2014-08-21 13:14:41 +02:00
James
aa03c16be0
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-21 12:53:05 +02:00
James
c4811009a8
fixing replaceNode for ExecutionPlan.
2014-08-21 12:32:07 +02:00
Jan Steemann
1edd170317
turned off optimization
2014-08-21 11:21:03 +02:00
James
a8801803dd
more IndexRangeNode stuff
2014-08-21 11:16:39 +02:00
Max Neunhoeffer
cf6fe967a1
Make enterSubqueries switchable in findNodesOfType
2014-08-21 09:44:59 +02:00
Jan Steemann
670b407185
disable filters that never produce results
2014-08-20 18:24:52 +02:00
James
b5d4fc52d1
added clone method for execution plan, removed debug prints.
2014-08-20 16:34:35 +02:00
James
260c790bc5
fixed bugs in last.
2014-08-20 16:13:53 +02:00
Jan Steemann
3fe8831a03
fixed optimizer bug due to duplicate variable representation
2014-08-20 14:18:33 +02:00
James
24b2dd1906
finding index in CalculationNodeFinder.
2014-08-20 11:38:02 +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
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
James
c0ce6d361c
AND working for IndexRangeNode.
2014-08-19 16:58:10 +02:00
Jan Steemann
232cc163c2
renamed optimizer rule
2014-08-19 16:10:57 +02:00
Jan Steemann
70a4f49095
removed commented code
2014-08-19 16:09:10 +02:00
James
370892566f
added new class to contain ranges, and take their intersections.
2014-08-19 15:53:17 +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
b82b0fbefc
remove comment and update the toJsonHelper for IndexRangeNode.
2014-08-19 12:08:22 +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
36430620fa
remove filters which are always true
2014-08-18 17:03: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
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