1
0
Fork 0
Commit Graph

118 Commits

Author SHA1 Message Date
Willi Goesgens ebbb9c34b6 Redundand-Sort: implement removing of left item superseeding the sort 2014-09-04 17:53:20 +02:00
Willi Goesgens 30b33a1793 Fix buffer overrun while comparing two sortNodes 2014-09-04 17:29:22 +02:00
Max Neunhoeffer 7e7b47ab71 Sort out negative cost estimations. 2014-09-02 10:15:02 +02:00
Jan Steemann 822c5daa32 assert costs are positive 2014-09-01 15:03:23 +02:00
James fd4b4e5df4 "proper" estimateCost method for IndexRangeNode. 2014-08-29 14:22:46 +02:00
Jan Steemann e47c2b99d3 use stable sort 2014-08-29 12:22:27 +02:00
James 46b40015ee renovating RangeInfo stuff to avoid mem leaks. 2014-08-29 11:52:19 +02:00
James b25f9d8301 fixed bug in last. 2014-08-29 09:34:23 +02:00
James 58a288fe77 copying a RangeIndexNode now properly copies the range infos. 2014-08-29 09:26:11 +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 ca814c9733 remove-redundant-sorts 2014-08-28 13:54:17 +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
James ee3a401c88 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-08-28 09:48:49 +02:00
James 511f08e4ca adding stub for estimateCost for IndexRangeNode. 2014-08-28 09:48:05 +02:00
Jan Steemann 6d0dfcdeba changed ctor 2014-08-28 00:27:24 +02:00
Jan Steemann 1e0a393d48 fixed wrong comment 2014-08-27 23:54:32 +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
Max Neunhoeffer 27d8409425 Implement canThrow method for SubqueryNode. 2014-08-27 13:07: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
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
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
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
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
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 55608ceae2 use index nodes 2014-08-22 13:53:01 +02:00
Jan Steemann 3a60913afe fix JSON serialization of indexes 2014-08-22 13:13:07 +02:00
James 4ba4ec4523 moving function getIndexes for EnumerateCollectionNode from h to cpp file. 2014-08-22 10:39:41 +02:00
James 1afad665fa putting RangeInfo stuff into new file. 2014-08-22 10:34:03 +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
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 102e866a89 adding canThrow methods for ExecutionNodes. 2014-08-21 15:46:41 +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
Max Neunhoeffer 321ab35551 Finish _parents in ExecutionNodes business. 2014-08-21 15:15:46 +02:00
Max Neunhoeffer 3007899abe Make an ExecutionNode store its parents. 2014-08-21 13:51:37 +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
Jan Steemann 0e8b61124e less verbose AST dumps in AQL_PARSE 2014-08-21 13:08:21 +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 52f48cd296 Add NoResultsNode. 2014-08-21 10:17:18 +02:00