1
0
Fork 0
Commit Graph

4180 Commits

Author SHA1 Message Date
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
James fd4b4e5df4 "proper" estimateCost method for IndexRangeNode. 2014-08-29 14:22:46 +02:00
Thomas Schmidts 3a695c15fd Added text to documentation 2014-08-29 14:09:49 +02:00
Willi Goesgens d6881ddabd Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2 2014-08-29 12:27:33 +02:00
Jan Steemann 1980d8b832 stable sort 2014-08-29 12:24:03 +02:00
Jan Steemann e47c2b99d3 use stable sort 2014-08-29 12:22:27 +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
Jan Steemann 5928d285ad fixed WAL recovery which hung in certain conditions 2014-08-29 12:03:38 +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 aefea865f5 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-29 11:09:44 +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 6c3544cffb Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-29 10:59:33 +02:00
Jan Steemann 8a96f907b0 refactored function argument conversion 2014-08-29 10:59:24 +02:00
James b25f9d8301 fixed bug in last. 2014-08-29 09:34:23 +02:00
James 7fe3cd8c68 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-29 09:26:40 +02:00
James 58a288fe77 copying a RangeIndexNode now properly copies the range infos. 2014-08-29 09:26:11 +02:00
Jan Steemann a32fac3747 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-29 09:20:36 +02:00
Jan Steemann 43ec93109f optimizer rules are now kept in a sorted map
rules can optionally be disabled at runtime
2014-08-29 00:08:29 +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 2a104b8bcb fixed several AQL tests 2014-08-28 16:19:05 +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 84199295ba Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-28 15:21:28 +02:00
Max Neunhoeffer af340d6dd6 Make sure varUsage is valid before instanciation. 2014-08-28 15:21:05 +02:00
James 3f646034c8 cleaning up IndexRangeBlock::readSkiplistIndex 2014-08-28 15:12:50 +02:00
James 9f6f15f85f Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-28 15:02:27 +02:00
James 9644fc87c7 fixed bug in last. 2014-08-28 15:00:53 +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 910c029730 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-28 14:28:11 +02:00
Jan Steemann a2da3eb7ee removed debug output 2014-08-28 14:27:43 +02:00
Jan Steemann e686fcaa85 fixed unused variables warning 2014-08-28 14:18:14 +02:00
Jan Steemann 844955cafd disabled debug output 2014-08-28 14:10:41 +02:00
Jan Steemann 531bb921ff disabled broken rules 2014-08-28 14:04:32 +02:00
Jan Steemann 04b322d9e0 sorting 2014-08-28 14:04:24 +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
Willi Goesgens 75d9d4ee60 Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2 2014-08-28 13:48:44 +02:00
Willi Goesgens 0a1d5edb29 SortToRange: fix abort critereon for non-skiplist indexes 2014-08-28 13:48:03 +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
Jan Steemann a014b44ba4 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Utils/Transaction.h
2014-08-28 11:06:14 +02:00
Jan Steemann 5930c3db70 added NTH function 2014-08-28 11:03:48 +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
Max Neunhoeffer 6926c2dfba Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-28 09:36:55 +02:00
Max Neunhoeffer b9cfff7c89 Fix infinite recursion bug in canThrow for subqueries. 2014-08-28 09:36:15 +02:00
Willi Goesgens 7b9b3d8570 fix memory leak in parametrization of new IndexRangeNodes 2014-08-28 09:20:47 +02:00
Jan Steemann b9024aeaeb basic C++ implementations for dedicated AQL functions 2014-08-28 01:24:42 +02:00
Jan Steemann 6d0dfcdeba changed ctor 2014-08-28 00:27:24 +02:00
Jan Steemann 2d2df1b5da added TODO 2014-08-28 00:18:19 +02:00
Jan Steemann a409f37dc6 re-use already declared optimizer rules for all queries 2014-08-28 00:03:23 +02:00
Jan Steemann 1e0a393d48 fixed wrong comment 2014-08-27 23:54:32 +02:00
Jan Steemann 37295fb2b1 changed wrong comments 2014-08-27 23:54:06 +02:00
Jan Steemann b10ae65d58 rules have names 2014-08-27 23:53:53 +02:00
Jan Steemann 2628afb426 cleanup 2014-08-27 22:46:26 +02:00
Max Neunhoeffer cc20fbbe58 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-27 22:10:54 +02:00
Max Neunhoeffer b2d44cd35e Add show() for ExecutionPlans. 2014-08-27 22:10:38 +02:00
Max Neunhoeffer f279c40262 Fix an early destruction bug. 2014-08-27 22:10:18 +02:00
James a84de9bbac Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-27 21:07:53 +02:00
James ee88997e8e skiplists in IndexRangeBlock working. 2014-08-27 21:07:34 +02:00
Jan Steemann 5b20348d26 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-27 19:39:13 +02:00
Jan Steemann dfaca5523c initialize variable 2014-08-27 19:38:53 +02:00
Jan Steemann cd1d0c45f8 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/V8Server/v8-query.cpp
2014-08-27 19:25:37 +02:00
Jan Steemann cda10393f5 some traversal speedups 2014-08-27 18:56:51 +02:00
Max Neunhoeffer c079de3a94 Adjust a cout message. 2014-08-27 16:58:20 +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
James b8a3382a7f Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-27 16:51:03 +02:00
Jan Steemann 140e10a2a0 added more node types 2014-08-27 16:50:43 +02:00
James 0638a5cbda Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-27 16:32:28 +02:00
Jan Steemann 679b6bd10f alwaysProducesBoolValue() 2014-08-27 16:24:14 +02:00
James c8667290b5 fixing bugs in last and removing debug prints. 2014-08-27 16:15:53 +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
James a3830c2566 IndexRangeNode now working with skiplists. 2014-08-27 14:51:56 +02:00
Max Neunhoeffer 27d8409425 Implement canThrow method for SubqueryNode. 2014-08-27 13:07:05 +02:00
Max Neunhoeffer 47da2daa76 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-27 12:11:24 +02:00
Max Neunhoeffer 23723d8e48 Add an explanation of index operators. 2014-08-27 12:10:51 +02:00
Jan Steemann 86ce08c96f added comments 2014-08-27 11:34:37 +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
Max Neunhoeffer a7814a7ad2 Return headers and body in ArangoClusterComm.syncRequest method. 2014-08-25 16:35:02 +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 30264eb6d2 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-25 15:12:09 +02:00
James 8896a01753 making the arguments of IndexRangeNode more general. 2014-08-25 15:11:54 +02:00
Willi Goesgens 91d420ea07 Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2 2014-08-25 13:33:59 +02:00
James 776cb02f1e Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-25 13:12: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
Willi Goesgens 5bcc8d784f Add the nodeID we tried to lookup without success in the exception message. 2014-08-25 11:43:48 +02:00
Willi Goesgens f6b1433160 When compiled in maintainer mode, print c-backtraces on Arango Exceptions too. 2014-08-25 10:27:25 +02:00
Jan Steemann 92739aa04d indentation 2014-08-23 02:58:28 +02:00
Jan Steemann 80e5ceeb52 emplace 2014-08-23 01:28:58 +02:00
Jan Steemann dcfa59806e more C++11 2014-08-23 00:51:13 +02:00
Jan Steemann 86bf8e3c4f removed unused function argument 2014-08-23 00:50:37 +02:00
Jan Steemann 683fbf4ec4 using emplace 2014-08-23 00:48:39 +02:00
Jan Steemann 7330597f15 fixed ambigious method JsonHelper::getStringValue 2014-08-22 21:53:29 +02:00
Jan Steemann 835b26f17c only initialize v8 dispatcher when there is a dispatcher
when the server is started with the --no-server option, the v8 dispatcher
was still initialized and this always failed and printed error messages.
2014-08-22 21:51:53 +02:00
Jan Steemann a70a9613f6 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	lib/BasicsC/voc-errors.h
2014-08-22 21:51:38 +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
Jan Steemann 9f9277357b some more asserts 2014-08-22 17:57:47 +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 45949608a1 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2 2014-08-22 16:58:02 +02:00
James 99623c8e2a finished deserialising of IndexRangeNode. 2014-08-22 16:57:34 +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 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