1
0
Fork 0
Commit Graph

375 Commits

Author SHA1 Message Date
Jan Steemann 9046e1831b clang-format 2016-01-27 13:43:46 +01:00
jsteemann 431900f17a changed namespace from triagens to arangodb 2016-01-17 00:44:53 +01:00
Jan Steemann 687d6133f0 comments reformatting 2016-01-11 09:52:39 +01:00
jsteemann 50c0e18d53 removed useless con|destructor comments 2016-01-07 21:19:53 +01:00
Jan Steemann ad1163e3bb refactoring for Aql COLLECT 2016-01-07 13:35:12 +01:00
Jan Steemann 3ad20c0cae auto-generated headers 2016-01-06 18:41:51 +01:00
Jan Steemann a3b026d9d1 removed useless sections from code, unified include guards 2016-01-06 14:15:22 +01:00
Jan Steemann f422576ee0 clang-format 2016-01-05 17:43:24 +01:00
jsteemann 50947dfae3 apply "sort-in-values" optimization for certain subqueries too 2015-12-23 00:44:47 +01:00
jsteemann 600c48375d added optimizer rule `sort-in-values` 2015-12-13 23:33:44 +01:00
Jan Steemann d572f3ed03 Merge branch 'aql-multi-modify' of https://github.com/arangodb/arangodb into devel 2015-12-03 11:38:30 +01:00
hkernbach 6d25ac57e9 Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-12-01 11:25:58 +01:00
jsteemann 49af794f5d Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-multi-modify 2015-12-01 01:56:46 +01:00
jsteemann e7e00e95c1 some cleanup 2015-12-01 01:26:27 +01:00
jsteemann 37f72fa721 micro optimizations 2015-11-30 19:37:58 +01:00
jsteemann cb62c657e0 initial commit 2015-11-18 17:46:19 +01:00
Wilfried Goesgens 92ad802bd6 Cache Graphs inside of the Query object
- split Graph clas into Aql/Graphs
  - cleanup includes
2015-11-11 13:52:33 +01:00
Wilfried Goesgens 327b408a22 Start implementing early filtering of paths to exclude from the result 2015-10-28 12:37:13 +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 197be68f7d removed IndexRange* 2015-10-13 15:12:32 +02:00
Jan Steemann deb0a132ae rewrite of optimizer rule `use-index-for-sort` 2015-10-13 15:00:09 +02:00
Jan Steemann e71ff5a4f5 cppcheck 2015-09-30 16:50:57 +02:00
Jan Steemann 91e8884518 added AggregateNode.* 2015-09-30 15:55:38 +02:00
Jan Steemann 50fa5a2138 added SortNode file 2015-09-30 15:42:48 +02:00
Jan Steemann 9041b7b2c9 file split 2015-09-30 15:29:32 +02:00
Jan Steemann d99f7a498d moved index nodes to their own files 2015-09-30 15:13:49 +02:00
Jan Steemann b5cf8ce942 moved cluster nodes out of ExecutionNode.* 2015-09-30 14:51:11 +02:00
Jan Steemann 6405c82a32 removed global reverse-flag for IndexNode. this flag has to be moved into the separate indexes used by the node 2015-09-30 14:14:41 +02:00
Michael Hackstein e35ea8995e Fixed used after free of condition node. Cloned the Condition AST whie handing it over. Still get a double free exception. IndexNodeis now handled. 2015-09-29 09:13:08 +02:00
Michael Hackstein 1e9c6f110b Started implementing the IndexBlock. Right now it expects an iterator for each used index that is created by an evaluated expression from the Block. Then it will go through all iterators in every get/skip some step 2015-09-28 19:30:10 +02:00
Jan Steemann abc87b2d5f added IndexNode stub 2015-09-25 13:40:51 +02:00
Michael Hackstein 1941b7f880 Added a new IndexNode does not compile yet 2015-09-25 13:18:43 +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 b4593a7e82 Change spelling of 'initialize' to American English (comments and log messages only) 2015-09-01 17:07:21 +02:00
Max Neunhoeffer ff135a10ad Add some overrides to silence a clang compiler warning. 2015-08-19 14:46:06 +02:00
Jan Steemann 2d8777bc6c make the optimizer create less plans 2015-07-30 00:07:32 +02:00
Jan Steemann 4912ce3200 fix cluster startup 2015-07-29 12:55:06 +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 c6d5f7d775 use move 2015-07-23 10:30:49 +02:00
Jan Steemann ce31550a9f fix variable naming in COLLECT INTO results in case the COLLECT is placed in a subquery which itself is followed by other constructs that require variables 2015-06-19 13:00:49 +02:00
Jan Steemann d2fef98c02 renamed internal function 2015-06-03 18:24:24 +02:00
Jan Steemann 3bb5eb1a9d small optimizations 2015-06-02 23:20:00 +02:00
Jan Steemann 574d521472 added alternative slice() method for AqlItemBlock
this method will copy only the first row from a source block into
a one-row target block. certain registers can be excluded. used to
initialize the registers for a subquery
2015-04-28 22:47:07 +02:00
Jan Steemann 974b656c1b allow overriding COLLECT method 2015-04-21 14:45:22 +02:00
Jan Steemann 61499432b7 do not remove constant sorts when creating plans, but during optimization phase
less utf8 comparisons
2015-04-20 11:32:29 +02:00
Jan Steemann d9add3a493 fixed collect in cluster 2015-04-16 21:10:48 +02:00
Jan Steemann ff6e56d89c adjusted some tests 2015-04-15 23:45:07 +02:00
Jan Steemann 8926e3f2e2 initial commit 2015-04-15 19:04:21 +02:00
Jan Steemann 013209b9c7 add expressionType to JSON output of CalculationNode 2015-04-03 15:02:17 +02:00
Jan Steemann 2f58e4ea61 small cleanup 2015-03-25 12:42:44 +01:00
Jan Steemann a3c0612798 added cluster tests 2015-03-24 14:34:09 +01:00
Jan Steemann 66e2273482 added documentation for UPSERT 2015-03-24 00:44:52 +01:00
Jan Steemann e3bf1c709c upsert blocks 2015-03-23 15:31:07 +01:00
Jan Steemann 8e48f98045 Merge branch 'devel' of https://github.com/arangodb/arangodb into data-modification
Conflicts:
	arangod/Aql/Collection.cpp
	arangod/Aql/ExecutionBlock.cpp
2015-03-20 21:54:39 +01:00
Jan Steemann a9cddb824f more usage of unique_ptrs 2015-03-20 00:05:32 +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 e84a5e8eb3 use indexes for sorting in more cases 2015-02-05 00:10:12 +01:00
Jan Steemann c18ff7f300 use-index-for-sort rule can now remove sorts in more cases 2015-02-02 22:53:25 +01:00
Jan Steemann 875a695b22 selectivity estimates 2015-02-02 20:14:36 +01:00
Jan Steemann c49986d0e8 preparation for conditions 2015-01-25 10:40:13 +01:00
Jan Steemann 86716e1834 fix subquery optimization 2015-01-19 11:01:32 +01:00
Jan Steemann 1003e52cf7 some cleanup 2015-01-18 16:41:48 +01:00
Jan Steemann 2d0a37d826 automatically create _keys in DistributeNode on insert 2015-01-12 10:33:05 +01:00
Jan Steemann f2590881f1 return old or new values in data-modification operations 2015-01-08 16:35:54 +01:00
Willi Goesgens e2f206fd2c Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
Conflicts:
	arangod/Aql/grammar.cpp
2015-01-07 15:50:44 +01:00
Willi Goesgens f905123802 Implement REMOVE/INSERT/UPDATE/REPLACE return the changed values 2015-01-07 15:48:13 +01:00
Jan Steemann 62696b6984 prerequisites for further COLLECT optimizations 2015-01-07 09:42:46 +01:00
Max Neunhoeffer 6fe1fb8568 Fix modifying AQL in cluster. 2014-12-23 22:44:01 +01:00
Max Neunhoeffer 1cdf439845 Broken version, errors not yet fixed. 2014-12-23 16:51:48 +01:00
Jan Steemann 6d6d67f06f activated optimizer rule remove-sort-rand
fixed tests, updated documentation
2014-12-21 18:50:50 +01:00
Jan Steemann 19d2d6668f added random iteration for collections 2014-12-19 18:01:13 +01:00
Jan Steemann dd60e53ce3 added more collect special cases 2014-12-16 22:52:33 +01:00
Jan Steemann f4d7a57c19 changed `COLLECT...INTO x COUNT` to `COLLECT...WITH COUNT INTO x`
allow executing subqueries without double brackets

jslint
2014-12-12 23:02:24 +01:00
Jan Steemann 8f6193faa2 added optional COUNT clause for AQL COLLECT 2014-12-12 17:18:04 +01:00
Max Neunhoeffer 62f03aa013 Choose skiplistIndex if in doubt. 2014-12-08 16:53:05 +01:00
Jan Steemann 8f99e59747 issue #1163: fullcount was sometimes used for wrong LIMIT node 2014-12-05 19:02:51 +01:00
Jan Steemann dd68db2252 fixed precedence of range operator 2014-12-05 11:00:26 +01:00
Jan Steemann 7e161b88ce issue #1131: added KEEP for `COLLECT...INTO` 2014-12-03 17:44:10 +01:00
Jan Steemann 4f39b9e358 optimize away `INTO` of `COLLECT` if unused 2014-12-03 13:49:03 +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 c8c16767be added rule to remove filters if covered by index ranges - not yet activated 2014-11-06 23:18:18 +01:00
Jan Steemann 7d036da648 fixed limit estimation 2014-11-06 13:44:55 +01:00
Jan Steemann bf30927913 removed canThrow tag for various built-in functions 2014-11-05 14:40:00 +01:00
Jan Steemann 025d73ae03 re-added support for fullCount 2014-11-01 15:20:05 +01:00
Max Neunhoeffer bfce170cae Fix cost estimation of SortNodes. 2014-10-29 15:41:38 +01:00
Jan Steemann 8bb213e7ba sort and cache list expression values
emplace

fixed wrong assertion
2014-10-29 01:02:20 +01:00
Jan Steemann 529bf386d7 fixed some API errors 2014-10-28 11:30:49 +01:00
Jan Steemann 13d240384f less namespace pollution 2014-10-28 00:24:37 +01:00
Jan Steemann b7c93c361a fixed tests 2014-10-27 16:43:10 +01:00
Jan Steemann 97a4355c4e fixed tests 2014-10-21 13:45:46 +02:00
Max Neunhoeffer 6eb2073336 Rename VarOverview into RegisterPlan, because that is what it is. 2014-10-20 09:14:01 +02:00
Max Neunhoeffer db7b23bdb8 Fix cloning of VarOverview. 2014-10-20 09:04:32 +02: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
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
Jan Steemann 4ff58364f1 fixed cloning of plans 2014-10-07 12:00:37 +02:00
Jan Steemann 0f83d8132f fixed some transaction threading errors 2014-10-06 18:39:01 +02:00
Willi Goesgens 7dac9d8cc7 Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-10-06 14:16:39 +02:00
Willi Goesgens 48c5ff938e If we clone an ExecutionNode for the same AST we also have to copy the evaluation members, but we don't need a deep-copy. 2014-10-06 14:15:41 +02:00
James 5af60d121e Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel 2014-10-06 12:57:17 +01:00
James 95fd279a52 distribution node/block declarations etc. 2014-10-06 12:57:09 +01:00
Willi Goesgens 8f74eeff97 Assert whether we have a varoverview. 2014-10-06 13:20:31 +02:00
James 5a070a4e0a remove const-qualified types in VarInfo struct to allow compilation. 2014-10-03 09:27:35 +01:00
Willi Goesgens e1efab6fb5 Fix cloning to other ASTs - dereference pointers to IDs and look up the items on the new lists 2014-10-02 18:41:13 +02:00
Jan Steemann 573d837561 off-by-one fix 2014-10-02 17:06:12 +02:00
Willi Goesgens bc627dda7b Also copy the varoverview to the clone. 2014-10-02 10:40:09 +02:00
Max Neunhoeffer be07d39457 Rename staticAnalysis -> planRegisters. 2014-10-02 00:11:15 +02:00
Jan Steemann 5b0b1f0af5 indenting 2014-10-01 19:06:29 +02:00
Jan Steemann 0d9cdfc87c struct Index 2014-10-01 15:35:16 +02:00
Max Neunhoeffer 993a89fea2 Fix compilation again. 2014-09-30 23:30:55 +02:00
Max Neunhoeffer 4b21832bba Take out unnecessary friend class declarations. 2014-09-30 23:23:46 +02:00
Max Neunhoeffer 8bffb3daa3 Finish transplantation. 2014-09-30 23:20:51 +02:00
Max Neunhoeffer 5676e82872 Make it compile using friend classes. 2014-09-30 20:14:39 +02:00
Max Neunhoeffer 40d7dec7bc Snapshot. 2014-09-30 16:49:12 +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 b31987fea7 pass data to RemoteNode 2014-09-29 16:36:52 +02:00
Jan Steemann ec1e6552ca clone plan for DBServers 2014-09-29 15:57:53 +02:00
Jan Steemann 3ac25ad56f fixed some issues with remote queries 2014-09-29 12:14:03 +02:00
Jan Steemann d177bc110c comments 2014-09-29 09:06:06 +02:00
Jan Steemann 9e47f3ca27 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-09-26 20:23:52 +02:00
Jan Steemann c3ce45e0dd added block instanciation for coordinator, v0.0.0 2014-09-26 20:17:42 +02:00
Willi Goesgens d003eecac1 We need to pass a reference since we want to return values onto this; and return const references to not duplicate the memory. 2014-09-26 15:22:41 +02:00
Jan Steemann 578d22c95b Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-09-26 13:58:16 +02:00
Jan Steemann f462c5f620 add database and collection info to gather nodes 2014-09-26 13:58:02 +02:00
Willi Goesgens 41fb15d462 Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-09-26 13:44:16 +02:00
Willi Goesgens 14eda3e348 - create type for SortElements to be used instead of stacked templates
- abstract json parsing of SortElemnts into an own function
 - implement deserialisation of Scatter/GatherNode
2014-09-26 13:42:26 +02:00
Max Neunhoeffer 5c7d058043 Add stubs for RemoteBlock. 2014-09-26 13:34:08 +02:00
Max Neunhoeffer e9bac83e67 Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel 2014-09-26 13:23:33 +02:00
Max Neunhoeffer c4fd3e7553 First steps towards RemoteBlock. 2014-09-26 13:23:21 +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
James b7a1247252 adding variables/sort direction in _elements to GatherNode. 2014-09-23 17:31:27 +01:00
Jan Steemann 5c552d4137 optimizer rule for scatter / gather 2014-09-17 17:29:36 +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
Willi Goesgens c71d142b51 We missed to output the modification options vector. 2014-09-16 18:25:41 +02:00
Jan Steemann 54b5e7b034 slightly improved access to dynamic bounds 2014-09-16 15:10:43 +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
Willi Goesgens 8bad042d08 Remove friend declaration since it seems not to be needed anyways. 2014-09-15 13:42:21 +02:00
Max Neunhoeffer 9bfd5eb8c6 Improve comments for getVarusage and friends. 2014-09-15 13:37:16 +02:00
Jan Steemann 5a1dc63946 fixed tons of compile errors in VS 2014-09-15 12:04:49 +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
Max Neunhoeffer 247f739bee Sort out variable usage in variable bound expressions.
Not yet compiling, need to sort out access to the Ast object.
2014-09-12 11:21:52 +02:00
Max Neunhoeffer e120da8a23 Note what needs doing to fix bug with variable lookup. 2014-09-12 00:59:59 +02:00