1
0
Fork 0
Commit Graph

161 Commits

Author SHA1 Message Date
Jan Steemann f422576ee0 clang-format 2016-01-05 17:43:24 +01:00
jsteemann a41f65b0ca optimizer simplifications 2015-12-21 01:43:16 +01:00
Michael Hackstein 3ea14e66a3 Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-12-03 10:19:17 +01:00
Jan Steemann eb8899d9ae applied changes suggested by cppcheck 2015-12-02 10:17:14 +01:00
Wilfried Goesgens dae95de667 Merge branch 'devel' of github.com:arangodb/ArangoDB into JHMH 2015-10-21 14:54:01 +02:00
Jan Steemann 91e8884518 added AggregateNode.* 2015-09-30 15:55:38 +02:00
Jan Steemann c72c568b07 added findEndNodes 2015-09-25 17:38:46 +02:00
Michael Hackstein 1a7f414c16 Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-09-18 12:21:39 +02:00
Frank Celler c4d1fff729 new traversal 2015-09-18 10:40:28 +02:00
CoDEmanX 3a9648d78a More Americanization 2015-09-03 22:25:43 +02:00
Jan Steemann 2d8777bc6c make the optimizer create less plans 2015-07-30 00:07:32 +02:00
Jan Steemann cdfdec9244 save some overhead when walking plans 2015-07-28 11:44:34 +02:00
Jan Steemann ead280afe5 added DISTINCT 2015-07-24 13:19:55 +02:00
Jan Steemann 6c9922ff6e disable qcache in cluster 2015-07-14 11:11:19 +02:00
Jan Steemann fda6aec8d5 push_back => emplace_back 2015-06-02 22:48:55 +02:00
Jan Steemann 974b656c1b allow overriding COLLECT method 2015-04-21 14:45:22 +02:00
Jan Steemann e3bf1c709c upsert blocks 2015-03-23 15:31:07 +01:00
Jan Steemann 6b24da1036 in the middle of refactoring 2015-03-17 09:08:25 +01:00
Jan Steemann dd74c6ac87 execute read and write operations of different collections in the same AQL query in lockstep, and not sequentially 2015-02-05 18:27:10 +01:00
Jan Steemann 86716e1834 fix subquery optimization 2015-01-19 11:01:32 +01:00
Jan Steemann 62696b6984 prerequisites for further COLLECT optimizations 2015-01-07 09:42:46 +01:00
Jan Steemann dd60e53ce3 added more collect special cases 2014-12-16 22:52:33 +01:00
Jan Steemann 8f6193faa2 added optional COUNT clause for AQL COLLECT 2014-12-12 17:18:04 +01:00
Jan Steemann 8f99e59747 issue #1163: fullcount was sometimes used for wrong LIMIT node 2014-12-05 19:02:51 +01:00
Max Neunhoeffer 7161a6b848 Reengineer cost estimation completely.
One test failing in single-server-AQL.
Cluster not yet tested.
2014-11-14 18:58:08 -05:00
Jan Steemann 025d73ae03 re-added support for fullCount 2014-11-01 15:20:05 +01:00
Jan Steemann f6b8f17dfa less optimizations for simple plans 2014-10-28 15:01:44 +01:00
Jan Steemann 7f2373204a fixed cloning of coordinator queries 2014-10-22 17:25:59 +02:00
Jan Steemann 912a8162fb some renaming 2014-10-16 17:23:50 +02:00
Willi Goesgens 3a7a03a51f Don't add intermediate calculationnodes for LET-statements to forward the results of subqueries. Instead adjust the outvariable of the subquerynode. 2014-10-10 17:00:49 +02:00
Willi Goesgens 6f4e5c4fd7 When creating the copy for the clusternodes we also need to copy the properties. 2014-10-02 11:07:31 +02:00
Max Neunhoeffer be07d39457 Rename staticAnalysis -> planRegisters. 2014-10-02 00:11:15 +02:00
Max Neunhoeffer 5dbcac8efe Start transplantation of _varOverview to ExecutionNodes. 2014-09-30 16:44:01 +02:00
Willi Goesgens 3f566f6289 Enable node* clone functions to produce deep copies which live on a specified query. 2014-09-30 14:09:12 +02:00
Jan Steemann ec1e6552ca clone plan for DBServers 2014-09-29 15:57:53 +02:00
Jan Steemann 50571f84db changed node detection for cluster 2014-09-18 13:21:58 +02:00
Jan Steemann b9f140e044 removed unused code 2014-09-17 11:31:05 +02:00
Jan Steemann 54b5e7b034 slightly improved access to dynamic bounds 2014-09-16 15:10:43 +02:00
Jan Steemann 87afcf5e8d the great rename 2014-09-13 00:10:11 +02:00
Max Neunhoeffer de728e2893 Finish reorganisation of Ast and ExecutionPlan usage. 2014-09-12 15:01:29 +02:00
Max Neunhoeffer 35ffe6b9e4 Restructure who has Ast and ExecutionPlan.
Not compiling yet.
2014-09-12 14:44:20 +02:00
Max Neunhoeffer 21f4d9be9d Teach ExecutionPlans to remember the Ast. 2014-09-12 09:44:17 +02:00
Willi Goesgens f25f12c098 Move parsing of calculations out of the whole json parser, so we can properly instanciate the transaction first. 2014-09-11 18:00:00 +02:00
Jan Steemann b8e12063e2 added "rules" output 2014-08-29 15:27:02 +02:00
Max Neunhoeffer c9193e44b8 Sort out some exception issues. 2014-08-29 11:37:01 +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
Max Neunhoeffer b2d44cd35e Add show() for ExecutionPlans. 2014-08-27 22:10:38 +02:00
Max Neunhoeffer 8fd6cd1184 Implement clear unneeded registers. 2014-08-22 17:00:53 +02:00
Max Neunhoeffer 9a7dd748f4 Fix linkage bug. 2014-08-21 16:54:52 +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
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
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
James b5d4fc52d1 added clone method for execution plan, removed debug prints. 2014-08-20 16:34:35 +02:00
Jan Steemann 3fe8831a03 fixed optimizer bug due to duplicate variable representation 2014-08-20 14:18:33 +02:00
Jan Steemann 99ce138c12 fixed creation of subqueries from JSON input 2014-08-19 18:51:11 +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 1a6487ab14 Json de/serialization 2014-08-19 16:09:37 +02:00
Jan Steemann e4abcdc843 added optimizer rule 2014-08-19 13:59:05 +02:00
James 40f743ccbc adding varSetBy. 2014-08-18 16:29:31 +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 8d080714a6 Add varUsage information to ExecutionNodes. 2014-08-15 13:29:26 +02:00
Jan Steemann 773c29cecf further work on RemoveNode 2014-08-15 12:20:17 +02:00
Max Neunhoeffer f248792865 Make WalkerWorker a template class.
Implement findNodesOfType for ExecutionPlans.
2014-08-14 15:04:59 +02:00
James 20c7897454 adding estimated cost to json rep of execution nodes/plan. 2014-08-14 11:04:41 +02:00
James 8bb501468f Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-08-14 10:51:49 +02:00
James 8f5c31e740 added caching of estimatedCost. 2014-08-14 10:29:47 +02:00
James 66794f9374 more estimateCost. 2014-08-13 18:28:22 +02:00
Jan Steemann 9856d4e9e0 use addNode 2014-08-01 12:19:15 +02:00
Jan Steemann 2881409527 renaming 2014-08-01 11:46:31 +02:00
Max Neunhoeffer 5bf0ff1a7c Rename files ExecutionPlan -> ExecutionNode 2014-08-01 11:26:09 +02:00
Max Neunhoeffer c1b15188ff Rename *Plan to *Node. 2014-08-01 11:17:34 +02:00
Jan Steemann c335a16d5a used Expression 2014-07-31 15:14:35 +02:00
Jan Steemann 60d493c56c always use variables 2014-07-31 14:36:03 +02:00
Jan Steemann 4b6ab03102 rename variables in JSON 2014-07-31 14:02:17 +02:00
Jan Steemann fbedb15df8 some more nodes 2014-07-31 13:40:20 +02:00
Jan Steemann c7c7ee5a52 create more plan nodes 2014-07-31 12:11:40 +02:00
Max Neunhoeffer 98d82de6fb Create generic recursive walk functionality for Plans/Blocks. 2014-07-31 10:31:45 +02:00
Max Neunhoeffer 2ef0095797 Start static analysis of variables in ExecutionBlocks. 2014-07-30 23:50:03 +02:00
Jan Steemann 1175e9e61c Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-07-30 18:04:19 +02:00
Jan Steemann e203691f0c started plan generator 2014-07-30 18:04:05 +02:00
Max Neunhoeffer 22dc301745 Change signature of RootPlan. 2014-07-30 17:05:38 +02:00
Max Neunhoeffer d09f2690da Get rid of _nrVars in ExecutionPlans. 2014-07-30 17:00:38 +02:00
Max Neunhoeffer 87a36596b1 Change Json format of ExecutionPlans. 2014-07-30 15:20:09 +02:00
Max Neunhoeffer 8c3304d242 Add a subquery node type to ExecutionPlans. 2014-07-30 13:45:00 +02:00
Max Neunhoeffer 4f1b5cbe2e Add a test case. 2014-07-30 13:41:22 +02:00
Max Neunhoeffer 92bd4b75d2 Fix signature of SortPlan nodes. 2014-07-30 11:47:45 +02:00
Max Neunhoeffer 14c465ec4d Fix signature of FilterPlan. 2014-07-30 11:42:13 +02:00
Max Neunhoeffer 2b8d497bc8 Repair CalculationPlan, add Json for expressions. 2014-07-30 10:00:25 +02:00
Max Neunhoeffer 944ba6597d Add projection and sort node. 2014-07-30 09:30:59 +02:00
Max Neunhoeffer d5ddf057ca Finish CalculationPlan node. 2014-07-30 09:06:43 +02:00
Max Neunhoeffer 9f92830f84 Plan remaining nodes. 2014-07-29 22:35:06 +02:00
Max Neunhoeffer 65b477ddbd Snapshot, compiles, does not work. 2014-07-29 13:40:54 +02:00
Max Neunhoeffer 5684bb5b65 Add RootBlock and stuff. 2014-07-28 16:26:24 +02:00
Max Neunhoeffer 43f96516a4 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-07-28 15:52:45 +02:00
Jan Steemann e02b443af5 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionPlan.h
2014-07-28 15:52:35 +02:00
Jan Steemann 765e44e80b execution v0.0000001 2014-07-28 15:51:38 +02:00