1
0
Fork 0
Commit Graph

4042 Commits

Author SHA1 Message Date
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 45d5d0f53a cppcheck 2014-08-22 13:53:21 +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
Jan Steemann 0a439474e5 cppcheck 2014-08-22 12:51:26 +02:00
Jan Steemann 5d5aaaa949 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-22 12:00:55 +02:00
James 8d31137698 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-22 10:56:16 +02:00
James 3987067339 cleaning up and readded toJsonHelper method for IndexRangeNode. 2014-08-22 10:55:51 +02:00
Max Neunhoeffer 7d60eff20d Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-22 10:54:38 +02:00
Max Neunhoeffer 9f868e9a4a Fix a use after free bug. 2014-08-22 10:54:12 +02:00
Jan Steemann 0793804206 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-22 10:44:27 +02:00
Jan Steemann 30c6b26b6d add plans! 2014-08-22 10:44:19 +02:00
James 4ba4ec4523 moving function getIndexes for EnumerateCollectionNode from h to cpp file. 2014-08-22 10:39:41 +02:00
James 9dfeb4bba2 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-22 10:34:22 +02:00
James 1afad665fa putting RangeInfo stuff into new file. 2014-08-22 10:34:03 +02:00
Jan Steemann f932e9277c cloned EnumerateCollectionBlock into IndexRangeBlock 2014-08-22 10:16:32 +02:00
Jan Steemann 871351f803 make count() const 2014-08-22 09:56:39 +02:00
Jan Steemann d1f550b65e Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-22 09:52:00 +02:00
Jan Steemann 2b27957546 added AQL_EXPLAIN() 2014-08-22 09:51:48 +02:00
Max Neunhoeffer c4918e4fb7 Silence another compiler warning. 2014-08-22 09:36:31 +02:00
Max Neunhoeffer 821ce84b4b Disable debugging output. 2014-08-22 09:28:41 +02:00
Max Neunhoeffer 70ba155083 Teach unlinkNode to deal with nodes with multiple parents. 2014-08-22 09:24:38 +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
Max Neunhoeffer 90aed7a640 Fix a bug with a wrong assertion. 2014-08-21 17:01:25 +02:00
Max Neunhoeffer 8919c138c7 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-21 16:55:05 +02:00
Max Neunhoeffer 9a7dd748f4 Fix linkage bug. 2014-08-21 16:54:52 +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
Max Neunhoeffer 5b0874a78a Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-21 15:49:11 +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
Max Neunhoeffer e515d7845c Fix first bug with parents. 2014-08-21 15:48:49 +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
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 81f08b7032 added insertDependency 2014-08-21 15:17:55 +02:00
Max Neunhoeffer 321ab35551 Finish _parents in ExecutionNodes business. 2014-08-21 15:15:46 +02:00
Frank Celler bcf4902876 worker is now a function with context 2014-08-21 14:57:17 +02:00
Jan Steemann 86707b336e do not unregister nodes on unlink 2014-08-21 14:23:07 +02:00
James 9cc85003ff fixed nextId in clone method for execution plans. 2014-08-21 13:59:27 +02:00
Jan Steemann 1d78071176 fixed filter removal optimizer rule 2014-08-21 13:57:08 +02:00
Jan Steemann 98251272cd Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-21 13:52:02 +02:00
Max Neunhoeffer 3007899abe Make an ExecutionNode store its parents. 2014-08-21 13:51:37 +02:00
Jan Steemann 09a7e874e9 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-21 13:46:38 +02:00
Max Neunhoeffer af93a13209 Fix instanciation of NoResultsNode. 2014-08-21 13:45:46 +02:00
Jan Steemann c70c56cf00 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-21 13:45:31 +02:00
Jan Steemann dc025e909b added free function 2014-08-21 13:45:22 +02:00
Max Neunhoeffer 068faf709b Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-21 13:43:23 +02:00
Max Neunhoeffer 8a454de193 Add NoResultsNode to instanciator factory. 2014-08-21 13:43:05 +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
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
Jan Steemann f7737e3b62 added stats 2014-08-21 12:36:30 +02:00
Jan Steemann 1442b9ebeb pass ExecutionEngine to ExecutionBlock, added stats for ExecutionEngine 2014-08-21 12:33:13 +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 b1be847af4 Add NoResultsBlock. 2014-08-21 10:32:38 +02:00
Max Neunhoeffer 6ae1432db5 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-21 10:17:40 +02:00
Max Neunhoeffer 52f48cd296 Add NoResultsNode. 2014-08-21 10:17:18 +02:00
Jan Steemann 8ff2b8e3d4 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-21 10:02:43 +02:00
Jan Steemann 1aeed2152c fixed de-serialization 2014-08-21 10:02:30 +02:00
Max Neunhoeffer cf6fe967a1 Make enterSubqueries switchable in findNodesOfType 2014-08-21 09:44:59 +02:00
Jan Steemann f13d62fe96 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-20 18:25:03 +02:00
Jan Steemann 670b407185 disable filters that never produce results 2014-08-20 18:24:52 +02:00
Jan Steemann f03d628efb issue #920: attempt to use new user document format in authentication 2014-08-20 18:20:12 +02:00
Willi Goesgens d295bacb51 Json: add HTTP-Entrypoint into Javascript deserialisation. 2014-08-20 17:08:06 +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
Jan Steemann 16f32254a8 remove unused AST optimization code 2014-08-20 12:42:59 +02:00
Jan Steemann fa885f40a5 disabled printing 2014-08-20 12:31:32 +02:00
Jan Steemann 6eaf1de8da fixed invalid cast 2014-08-20 12:11:16 +02:00
James 24b2dd1906 finding index in CalculationNodeFinder. 2014-08-20 11:38:02 +02:00
Jan Steemann afdf9e5d2b Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-20 11:20:25 +02:00
Jan Steemann a82a259df9 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-20 11:19:51 +02:00
Jan Steemann 52566a2975 optimizations for list expressions 2014-08-20 11:19:28 +02:00
Willi Goesgens 152d8dadcf Json-Dumper: Output json dump; assert equalness. 2014-08-20 11:19:16 +02:00
Willi Goesgens 0ad6da9427 Json Serialisation: Use helper function to read variables from the json 2014-08-20 10:57:59 +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
James c0ce6d361c AND working for IndexRangeNode. 2014-08-19 16:58:10 +02:00
Willi Goesgens f179c35f02 Follow changes in Replace & UpdateNode - they have inDoc/inKey/out Variable now.
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2

Conflicts:
	arangod/Aql/ExecutionPlan.cpp
2014-08-19 16:19:38 +02:00
Willi Goesgens 68af283cbe add ModificationOptions CPP-File 2014-08-19 16:11:54 +02:00
Jan Steemann 232cc163c2 renamed optimizer rule 2014-08-19 16:10:57 +02:00
Willi Goesgens 1a6487ab14 Json de/serialization 2014-08-19 16:09:37 +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
James 04b396f65e adding RangeInfoBound to clean things up. 2014-08-19 11:01:06 +02:00
Jan Steemann 1030ea1b7c working on optimizer rules 2014-08-19 10:22:08 +02:00
Frank Celler 7b3cdf0bd0 fixed gc 2014-08-19 08:03:58 +02:00
Frank Celler 9fa3d22d6c towards new dispatcher interface 2014-08-18 23:37:32 +02:00
James ad8e179cf1 adding unbounded ranges info for IndexRangeNode. 2014-08-18 17:18:58 +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
Jan Steemann 2d62ca94cc Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-18 16:31:20 +02:00
James 40f743ccbc adding varSetBy. 2014-08-18 16:29:31 +02:00
Jan Steemann 0666708206 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-18 14:27:37 +02:00
Jan Steemann e6e78811b5 fixed replace 2014-08-18 14:27:23 +02:00
James 1118add7e6 uncommenting out. 2014-08-18 14:15:40 +02:00
James fb1d69bbae Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-18 14:12:10 +02:00
James 13aeacc43c fixed compiler errors, and working on IndexRangeNode. 2014-08-18 14:12:00 +02:00
Jan Steemann 7b3389b55c modification queries 2014-08-18 13:52:41 +02:00
Jan Steemann fccfca0e47 refactoring 2014-08-18 13:22:40 +02:00
Jan Steemann bdfef136bf Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-18 12:34:41 +02:00
Jan Steemann b010518e9e implementation of update/replace (update not yet merging old attributes) 2014-08-18 12:34:27 +02:00
Frank Celler 986bf7d0e8 added dispatcherThreads 2014-08-18 12:08:33 +02:00
James 8f6fd0e4c4 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-18 11:11:46 +02:00
James f1a7ca51be adding range info to toJsonHelper. 2014-08-18 11:11:27 +02:00
James a79f72087d adding Index caching, and cleaning up last. 2014-08-18 10:46:47 +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
Jan Steemann f8cf5dc26d Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/V8Server/v8-vocbase.cpp
2014-08-15 18:47:18 +02:00
Jan Steemann 56eb49dcf7 fixed compile error 2014-08-15 18:22:19 +02:00
Jan Steemann b1aceb9771 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-15 18:13:11 +02:00
Jan Steemann 97fd5a55ba renamed variable 2014-08-15 18:12:58 +02:00
Jan Steemann 9348f12f78 implemented insert node 2014-08-15 18:12:33 +02:00
Max Neunhoeffer f671fb7e36 Add the first actual optimization rule (as a stub). 2014-08-15 16:54:53 +02:00
Max Neunhoeffer af2c9d1a92 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-15 16:10:12 +02:00
Max Neunhoeffer 92f3ca5dc8 Fix bug in varUsageFinder. 2014-08-15 16:09:58 +02:00
Max Neunhoeffer 9138be31b9 Take out some debugging output. 2014-08-15 16:09:10 +02:00
James ac58a0a9d3 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-15 15:31:31 +02:00
James c128cc716e version of IndexRangeNode accepting range information as an argument. 2014-08-15 15:31:23 +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 ceff1481ed Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-15 13:55:21 +02:00
James 6bbbc34150 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-08-15 13:54:50 +02:00
James 47244fb48e initial version of IndexRangeNode. 2014-08-15 13:52:52 +02:00
Max Neunhoeffer 8d080714a6 Add varUsage information to ExecutionNodes. 2014-08-15 13:29:26 +02:00
Max Neunhoeffer 21eda8a212 Withdraw some operator magic for Json wrapper class. 2014-08-15 13:29:01 +02:00
Jan Steemann 631a73d9cb moved analyzeExpression() call into constructor 2014-08-15 13:14:45 +02:00
James a0db57b7f9 adding an Index object, and initial IndexRangeNode. 2014-08-15 12:57:52 +02:00
Jan Steemann 9306105447 REMOVE 2014-08-15 12:44:35 +02:00
Jan Steemann 773c29cecf further work on RemoveNode 2014-08-15 12:20:17 +02:00
Thomas Schmidts 415fefdafa Fixed small formatation error 2014-08-15 11:01:56 +02:00
Jan Steemann 655d7759bf added canThrow() for Expression 2014-08-14 20:20:59 +02:00