1
0
Fork 0
Commit Graph

746 Commits

Author SHA1 Message Date
jsteemann ecd7de16cb added optimizer rule "inline-subqueries" 2016-04-15 17:21:22 +02:00
Jan Steemann 9163236f2b renamed optimizer rule "merge-traversal-filter" into "optimize-traversals" 2016-04-12 14:51:15 +02:00
jsteemann 4a7c9f0f68 simplified bloated comments 2016-04-09 11:27:30 +02:00
Jan Steemann dce7c427d9 test fixes 2016-03-24 14:55:31 +01:00
Max Neunhoeffer c2049b8ee1 Switch to IndexHandles. 2016-03-23 08:57:00 +01:00
jsteemann dc3581563c bugfixes 2016-03-17 14:46:49 +01:00
Michael Hackstein c9b42aac95 Fixed a stupid double assign. 2016-03-15 18:32:26 +01:00
Michael Hackstein 7e0c8c935d Reimplemented optimizer rule to remove unnecessary SORT if covered by index 2016-03-15 11:12:10 +01:00
Michael Hackstein 78f0b95289 AQL indexNode now uses the new transaction API. It does not know any index internals itself any more. Optimizer Rule to remove SORT node needs to be reimplemented yet 2016-03-14 21:28:58 +01:00
Jan Steemann c21d7fc2f4 less json 2016-03-09 10:32:08 +01:00
jsteemann bee34da616 make replace-or-with-in rule fire in more cases 2016-02-10 23:07:24 +01:00
Jan Steemann 5ba2432d78 remove sort in more cases 2016-02-10 11:23:11 +01:00
jsteemann a02e2b563f fixed issue #1707: 2.8.1 crashes
the crash was due to a required variable being removed from the execution plan.
this happened when there were multiple execution plans, and a certain transformation
was made in one of them. the transformation modified an element that was shared by
all plans, but it should have made a copy so only the current plan is affected
2016-02-07 00:23:34 +01:00
jsteemann 2d7323a560 fixed warnings shown by clang-3.7 2016-01-31 02:17:36 +01:00
jsteemann 1ca11411fd added (still disabled) optimizer rule `inline-subqueries` 2016-01-29 00:50:37 +01:00
Jan Steemann 9046e1831b clang-format 2016-01-27 13:43:46 +01:00
jsteemann 842384016d namespace cleanup 2016-01-21 00:20:22 +01:00
jsteemann 431900f17a changed namespace from triagens to arangodb 2016-01-17 00:44:53 +01:00
jsteemann 03c4a4fb23 renamed optimizer rule for collect optimization 2016-01-17 00:07:13 +01:00
jsteemann 4abf96e1db removed special case for COLLECT INTO var = expr 2016-01-16 20:20:44 +01:00
Jan Steemann fd7a03980e renamed 2016-01-12 19:25:05 +01:00
Jan Steemann 687d6133f0 comments reformatting 2016-01-11 09:52:39 +01:00
Jan Steemann 1e6a07426c collect refactoring 2016-01-07 14:10:32 +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
Max Neunhoeffer b10fafa501 Remove unused code. 2015-12-23 15:06:41 +01:00
Max Neunhoeffer c7f00bfeda Continue work on TODOs. 2015-12-23 14:40:04 +01:00
Max Neunhoeffer 3996d2e6a2 Merge branch 'devel' into vpack 2015-12-23 08:35:59 +01:00
jsteemann 50947dfae3 apply "sort-in-values" optimization for certain subqueries too 2015-12-23 00:44:47 +01:00
Max Neunhoeffer 225c8cd843 Work on TODOs. 2015-12-22 16:50:09 +01:00
jsteemann a41f65b0ca optimizer simplifications 2015-12-21 01:43:16 +01:00
jsteemann 50818d9c80 simplifications 2015-12-18 23:54:14 +01:00
Jan Steemann 36eac6ffd0 fixed index selection in some queries 2015-12-18 20:16:09 +01:00
Jan Steemann 8053911c39 tests for issue #1583 2015-12-18 12:15:52 +01:00
Jan Steemann a694b7ef48 make_unique 2015-12-16 11:36:35 +01:00
jsteemann 51c267cd2a dont optimize in certain cases when its useless 2015-12-14 00:12:14 +01:00
jsteemann 600c48375d added optimizer rule `sort-in-values` 2015-12-13 23:33:44 +01:00
jsteemann 18e47457a6 fixes 2015-12-11 13:29:18 +01:00
Jan Steemann ee6792dd6b fixes for traversal and multi-modify 2015-12-08 14:50:05 +01:00
Jan Steemann a53da38fcd fixed some cluster queries 2015-12-04 17:07:36 +01:00
Michael Hackstein 11640a15ad Fixed a comment 2015-12-03 16:05:06 +01:00
Jan Steemann d8bf728fd3 added TRAVERSAL nodes for optimization checks 2015-12-03 15:25:16 +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
Michael Hackstein 3ea14e66a3 Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-12-03 10:19:17 +01:00
jsteemann 9fa0f6d3a7 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-multi-modify 2015-12-02 16:38:50 +01:00
Jan Steemann eb8899d9ae applied changes suggested by cppcheck 2015-12-02 10:17:14 +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
Michael Hackstein e9a36a3fbf Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-11-30 14:17:44 +01:00
Jan Steemann 5acd13e8e9 fixed assertion failure in some cluster queries 2015-11-30 12:48:26 +01:00
jsteemann cb62c657e0 initial commit 2015-11-18 17:46:19 +01:00
Michael Hackstein 7a36bbb43f Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-11-18 13:58:47 +01:00
Jan Steemann 82eddeb120 allow using array indexes without specifying the `[*]` extension 2015-11-17 14:03:58 +01:00
Wilfried Goesgens c27ee437dd Properly communicate whether we altered the plan or not. 2015-11-09 10:59:40 +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 951165ab1e Merge branch 'devel' of github.com:arangodb/ArangoDB into JHMH
Conflicts:
	arangod/Aql/grammar.cpp
	arangod/Aql/grammar.h
	js/common/modules/org/arangodb/graph-examples/example-graph.js
2015-10-28 11:08:18 +01:00
Wilfried Goesgens cd6cc35def Adjust the stage to the now non-void pointered index implementation. 2015-10-22 11:12:21 +02:00
Jan Steemann 35f01d1959 fixed assertion failure when trying to optimize multiple INs with OR 2015-10-21 17:41:57 +02:00
Jan Steemann b28393e458 cleanup 2015-10-20 11:44:01 +02:00
Jan Steemann 164f9c9a1c fixed some tests 2015-10-19 17:48:10 +02:00
Jan Steemann 663a92567b updated replace-or-with-in optimizer rule 2015-10-19 15:36:04 +02:00
Michael Hackstein 988cfad3d6 The use-indexes rule will nw be used and explained if it created NoResult Nodes 2015-10-15 17:01:41 +02:00
Jan Steemann 7f778b148a blind commit 2015-10-15 16:19:33 +02:00
Jan Steemann 98882efa61 optimizer fixes 2015-10-14 16:56:03 +02:00
Jan Steemann 1ebcea2352 remove-filter-covered-by-indexes rewrite 2015-10-13 17:59:40 +02:00
Jan Steemann 068d85b562 less header dependencies 2015-10-13 17:00:59 +02:00
Jan Steemann fcdd95d7cd fixes 2015-10-13 16:26:43 +02:00
Jan Steemann 7d11a07a5a removed RangeInfo.h 2015-10-13 15:15:48 +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 f2efdc3dc3 fixed fix 2 2015-10-13 11:27:56 +02:00
Jan Steemann cd7c1bc453 preparations for sort optimizer rule 2015-10-13 10:37:07 +02:00
jsteemann 4191056151 removed remainders of "use-index-range" optimizer rule 2015-10-12 22:49:30 +02:00
Michael Hackstein 9bcbdc3565 Fixed failures in the SkiplistIndex and removed use-index-range rule 2015-10-12 17:46:04 +02:00
Jan Steemann d479fa11cc IndexBlock cleanup 2015-10-07 18:15:50 +02:00
Jan Steemann 85eacaa458 fixed memleaks 2015-10-07 16:12:20 +02:00
Jan Steemann 37bc5b64ff fixed segfault 2015-10-05 13:49:23 +02:00
Jan Steemann 7d4c379598 small modifications, temporarily disabled interchange-adjacent-enumerations 2015-10-02 19:53:35 +02:00
Jan Steemann 574f88a1f9 fixed invalid cast 2015-10-02 18:04:52 +02:00
Michael Hackstein d77dfc55c3 Started implementing runtime evaluation of IndexNode expressions 2015-10-02 17:03:53 +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 ccd06fc1a4 simplified ConditionFinder 2015-09-25 18:01:02 +02:00
Jan Steemann d5dabfb528 Merge branch 'aql-jmmh-conditions' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
Conflicts:
	arangod/Aql/OptimizerRules.cpp
2015-09-25 17:41:10 +02:00
Jan Steemann d51c984f11 use findEndNodes 2015-09-25 17:39:23 +02:00
Michael Hackstein 17a45c8cd3 Fixed potential memleaks in failure cases 2015-09-25 17:38:04 +02:00
Michael Hackstein 2a342fe40f The use-indexes rule now replaces EnumerateCollectionNodes with IndexNodes. Seems to work on visual test, needs automated test 2015-09-25 17:23:47 +02:00
Jan Steemann 9472eb7b45 make it link again 2015-09-25 16:30:29 +02:00
Jan Steemann abc87b2d5f added IndexNode stub 2015-09-25 13:40:51 +02:00
Michael Hackstein 6a11ad28ee Adapted all indices to the new planned interface so they tell us if they can serve for a condition and present their costs 2015-09-25 10:40:04 +02:00
Michael Hackstein 180ffa74a3 Moved the conditionFinder to a seperate file 2015-09-24 14:16:25 +02:00
Michael Hackstein 8c3283f8a0 Fixed memleak 2015-09-23 16:29:28 +02:00
Michael Hackstein f1b0afd9a6 Started to implement functions to find indexes for each Condition sub part 2015-09-22 11:19:52 +02:00
Michael Hackstein 1e5b246b6b Included the work of @dothebart that was created on optimizing the condition tree. 2015-09-17 18:27:47 +02:00
Jan Steemann b0798bbb19 first commit, broken 2015-09-16 17:22:09 +02:00
Jan Steemann d9169f964e potential fix for 32 bit version 2015-09-12 21:26:59 +02:00
CoDEmanX 3a9648d78a More Americanization 2015-09-03 22:25:43 +02:00
Michael Hackstein b708a7ae68 Merge remote-tracking branch 'origin/devel' into array_indexing 2015-08-21 15:34:49 +02:00
Jan Steemann 97d67e4399 use binary-safe string representations 2015-08-20 01:46:20 +02:00
Michael Hackstein e867181a72 Merge remote-tracking branch 'origin/eimerung_hashindex' into array_indexing 2015-08-17 15:58:53 +02:00
Michael Hackstein c2338d80d0 A user can now create an indux on attribute[*] which will put an index on attribute and ignores the expand flag. Does not harm any feature in AQL now. 2015-08-17 12:43:08 +02:00
Michael Hackstein 17a8f73a06 Now the input for indexes is parsed using the new attribute parser. This means the flags for expanded Attributes are set. Also introduced a transformation function to transform an attributeName list back into a string. 2015-08-17 12:43:07 +02:00
Michael Hackstein 8fbb2739b0 The indexes can now use the new AttributeName struct which contains a flag if the attribute should be Array-Indexed. Right now this flag is hard-coded to false in all cases and not persisted. 2015-08-17 12:43:05 +02:00
Jan Steemann dc1910e331 added AQL optimizer rule `patch-update-statements` 2015-08-13 13:02:47 +02:00
Jan Steemann 7b5ac63591 cppcheck 2015-08-12 21:37:28 +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 8685a6a250 documentation for `RETURN DISTINCT` 2015-07-27 11:27:59 +02:00
Jan Steemann ead280afe5 added DISTINCT 2015-07-24 13:19:55 +02:00
Jan Steemann d6f3436cc9 added tests 2015-06-16 15:13:53 +02:00
Jan Steemann d99d164c0a simplified parser 2015-06-10 20:25:25 +02:00
Jan Steemann 6f56e9ef43 indentation 2015-06-08 16:23:49 +02:00
Jan Steemann 3bb5eb1a9d small optimizations 2015-06-02 23:20:00 +02:00
Jan Steemann fda6aec8d5 push_back => emplace_back 2015-06-02 22:48:55 +02:00
Jan Steemann 8b8918f72c added (still disabled) rule fuse-calculations 2015-06-02 21:32:38 +02:00
Jan Steemann a9f2769ffa now compiles and links 2015-05-23 04:31:13 +02:00
Jan Steemann 4522d8ab33 fixed wrong index usage, added tests 2015-05-21 18:29:43 +02:00
Jan Steemann 9c73028541 less copying 2015-05-12 13:36:08 +02:00
Jan Steemann 06cf34700f simplify attribute accesses 2015-05-08 15:14:17 +02:00
Jan Steemann 7e47d75042 fixed wrong condition 2015-05-08 12:44:53 +02:00
Jan Steemann beb45ad8f8 use indexes when referring to an attribute name via bind parameter 2015-05-08 12:39:55 +02:00
Jan Steemann 7783ed1b33 speedups 2015-04-29 17:42:33 +02:00
Jan Steemann 6fe78cddb1 speed up big IN-lists in AQL 2015-04-29 16:22:45 +02:00
Jan Steemann 974b656c1b allow overriding COLLECT method 2015-04-21 14:45:22 +02:00
Jan Steemann 3bb3e15d8e fixed getAttributeAccess() 2015-04-20 14:30:06 +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 528ec17bcd Merge branch 'devel' of https://github.com/arangodb/arangodb into hash-collect
Conflicts:
	arangod/FulltextIndex/fulltext-handles.cpp
2015-04-16 19:06:21 +02:00
Jan Steemann e2000f571f try to satisfy scan-build 2015-04-16 15:04:11 +02:00
Jan Steemann e1312f2088 attempt to satisfy scan-build a bit 2015-04-16 11:47:18 +02:00
Jan Steemann 8926e3f2e2 initial commit 2015-04-15 19:04:21 +02:00
Jan Steemann 2f58e4ea61 small cleanup 2015-03-25 12:42:44 +01:00
Jan Steemann 01745402f3 Merge branch 'devel' of https://github.com/arangodb/arangodb into data-modification 2015-03-24 14:34:20 +01:00
Jan Steemann a3c0612798 added cluster tests 2015-03-24 14:34:09 +01:00
Willi Goesgens 44101c621d Fix macos warning: declaring & calling in one line seems to be undeclared. 2015-03-24 11:33:19 +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 1298bd40a8 added tests for out-of-memory situations 2015-03-20 08:54:15 +01:00
Jan Steemann a9cddb824f more usage of unique_ptrs 2015-03-20 00:05:32 +01:00
Jan Steemann 13ddb8b34b fixed some cluster plans 2015-03-17 13:52:09 +01:00
Jan Steemann 6b24da1036 in the middle of refactoring 2015-03-17 09:08:25 +01:00
Jan Steemann 34e101725f fixed assertion 2015-03-16 17:28:54 +01:00
Jan Steemann 7c5cc16a8a less locking for cluster status checks 2015-02-18 18:14:12 +01:00
Jan Steemann 205736a028 added optimizer rule "propagate-constant-attributes" 2015-02-15 13:29:53 +01:00
Jan Steemann 1701be206f more sparse tests 2015-02-11 21:21:14 +01:00
Jan Steemann 33a4d2c4dc added tests 2015-02-11 19:34:00 +01:00
Jan Steemann 003d7e9112 sparse indexes, initial commit, untested 2015-02-07 03:07:41 +01:00
Jan Steemann cdd31f2b92 constification 2015-02-05 00:10:30 +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 e30ddf0df3 fixed indexing test 2015-02-02 20:33:45 +01:00
Jan Steemann 7af624e2f0 selectivty, try 0 2015-01-27 09:34:04 +01:00
Jan Steemann d348f60e59 added AQL optimizer rule "move-calculations-down" 2015-01-22 20:36:38 +01:00
Jan Steemann 87b1f7fde3 enable indexes in even more cases 2015-01-22 17:24:47 +01:00
Jan Steemann 1c935b6ab2 added tests for filter order, not optimization etc. 2015-01-22 14:16:58 +01:00
Jan Steemann 14e82da2b0 fixed leak 2015-01-19 22:25:16 +01:00
Jan Steemann ee51a8ebfd added more tests for indexes 2015-01-19 11:10:57 +01:00
Jan Steemann 1003e52cf7 some cleanup 2015-01-18 16:41:48 +01:00
Jan Steemann 823369c815 disable the use of indexes in certain unsafe situations 2015-01-17 17:45:36 +01:00
Max Neunhoeffer 892f11d2e8 Clarify code for cluster modififying AQL. 2015-01-12 10:37:06 +01:00
Jan Steemann 2d0a37d826 automatically create _keys in DistributeNode on insert 2015-01-12 10:33:05 +01:00
Jan Steemann 2de9760820 fixed empty error message 2015-01-09 23:29:36 +01:00
Jan Steemann c591357dd3 slightly changed cost estimation for IndexRangeNode 2015-01-07 15:11:42 +01:00
Jan Steemann 62696b6984 prerequisites for further COLLECT optimizations 2015-01-07 09:42:46 +01:00
Jan Steemann 8333591e3f issue #1199: Cannot unlink root node of plan 2015-01-02 17:38:33 +01:00
Max Neunhoeffer cf94935ebc Fix a bug in optimizer rule for DistributeNode. 2014-12-24 00:43:38 +01:00
Max Neunhoeffer 20424bd642 Fix a bug in modifying AQL when REPLACE/UPDATE uses DistributeNode. 2014-12-24 00:18:39 +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
Max Neunhoeffer 05c069f361 Another fix for the distributed locking problem in cluster AQL. 2014-12-23 14:35:19 +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 20e7fe7a7a the great rename: array => object, list => array 2014-12-18 21:07:06 +01:00
Jan Steemann f35f8d1643 fixed ranges, added tests 2014-12-16 13:54:46 +01:00
Jan Steemann 4a60a62028 indentation 2014-12-16 00:30:55 +01:00
Jan Steemann 1c65c042a4 added tests, fixed exception 2014-12-16 00:20:40 +01:00
Jan Steemann bcdeabd3ab Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql-feature-index-or
Conflicts:
	arangod/Aql/ExecutionBlock.cpp
2014-12-15 21:53:51 +01:00
Jan Steemann 1e83716c1d removed debug output 2014-12-13 12:48:09 +01:00
Willi Goesgens 115f226385 Optimizer: Enable removing of filternodes if the index can handle the filter condition. 2014-12-12 21:39:35 +01:00
James 7ab57d64ec Merge branch 'aql-feature-index-or' of ssh://github.com/triAGENS/ArangoDB into aql-feature-index-or 2014-12-09 22:05:57 +00:00
Jan Steemann 22928c1bb5 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql-feature-index-or
Conflicts:
	arangod/Aql/ExecutionBlock.cpp
	arangod/Aql/OptimizerRules.cpp
2014-12-09 22:45:55 +01:00
Jan Steemann 2fbc53f711 fixed potential leaks 2014-12-09 16:27:05 +01:00
James 4fdd97c9a7 fixed another bug 2014-12-09 14:19:52 +00:00
Jan Steemann d638c1c0c9 fixed choicung 2014-12-09 15:18:53 +01:00
James a4dcf1b9d3 Merge branch 'aql-feature-index-or' of ssh://github.com/triAGENS/ArangoDB into aql-feature-index-or 2014-12-09 10:23:07 +00:00
James 46fe461ca1 fixed bug and added test for it. 2014-12-09 09:40:40 +00:00
Max Neunhoeffer 368530dd5a Fix number of plan cap. 2014-12-09 09:59:07 +01:00
Max Neunhoeffer 62f03aa013 Choose skiplistIndex if in doubt. 2014-12-08 16:53:05 +01:00
Max Neunhoeffer fc79c31661 More sensible plan management in useIndexRangeNode optimizer rule. 2014-12-08 15:37:01 +01:00
Jan Steemann 5d9c8ef49a removed compile warnings 2014-12-08 12:54:44 +01:00
Jan Steemann cd17c393ab Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql-feature-index-or
Conflicts:
	arangod/Aql/ExecutionBlock.cpp
	arangod/Aql/OptimizerRules.cpp
	arangod/Aql/grammar.cpp
2014-12-08 12:37:13 +01:00
James ad211c83a5 memleaks 2014-12-06 19:01:16 +00:00
James 454ef10898 fixing last 2014-12-06 16:21:59 +00:00
James bf4b718019 memleaks 2014-12-06 16:18:39 +00:00
James f0bb73982c whitespace 2014-12-06 14:22:52 +00:00
Jan Steemann 4c43c1bdaf less plans created by optimizer 2014-12-04 12:49:34 +01:00
Jan Steemann 4f39b9e358 optimize away `INTO` of `COLLECT` if unused 2014-12-03 13:49:03 +01:00
James 8c28127be1 fixing dynamic bounds which are lists. 2014-12-03 11:44:38 +00:00
James 52b174bb3d updating 2014-12-02 11:22:01 +00:00
James b1300fb927 same as last 2014-12-02 10:24:01 +00:00
James 8f735ca9c7 more attempts at fixing memleaks 2014-12-02 10:14:16 +00:00
James 3bab43be0a memleaks 2014-12-02 09:36:11 +00:00
James 2d9c4196ac updating comment 2014-12-02 08:05:33 +00:00
Max Neunhoeffer cfb0b21f2d Add Jan's patch for the indexRangeNode recognition.
We change all EnumerateCollectionNodes to IndexRangeNodes if possible
and do not keep the old plans.
2014-12-01 18:38:30 +01:00
James be95719179 fixed bug in logic of hash index use. 2014-11-28 08:24:56 +00:00
James fe356e2187 some partial fixes 2014-11-27 13:24:16 +00:00
James 40a67f47c7 Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into aql-feature-index-or
Conflicts:
	arangod/Aql/ExecutionBlock.cpp
	arangod/Aql/OptimizerRules.cpp
2014-11-27 09:25:43 +00:00
Jan Steemann 8a715d7791 fixed `remove-redundant-or` rule
the rule was not producing correct conditions for queries such as

   FOR i IN collection FILTER i._key > 'a' && i._key > null RETURN i
2014-11-26 21:42:22 +01:00
Jan Steemann 292eaad273 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-11-26 19:49:38 +01:00
Jan Steemann 45ebdf7581 enable more indexes 2014-11-26 19:49:28 +01:00
Jan Steemann 57aefb988d fix optimization of subqueries 2014-11-26 15:01:55 +01:00
Jan Steemann c69fa0b0dc fixed invalid optimization, added test cases 2014-11-25 23:18:24 +01:00
James ec21728ad2 fixed logic of optimizer rule use-index-range, if one of the OR conditions is not useable, then throw away plan. 2014-11-25 10:08:50 +00:00
James 02538a1063 avoid inserting duplicate values in buildRangeInfo when they come from an IN. 2014-11-25 09:05:06 +00:00
James 908c14fc6a most tests green 2014-11-22 15:20:26 +00:00
James cc94e2413d same as last 2014-11-22 15:08:04 +00:00
James 2704921daf properly handle empty conditions 2014-11-22 14:58:34 +00:00
James 16540bbae4 cleaning up and avoid inserting duplicate conditions. 2014-11-22 14:26:48 +00:00
James c1c44ad64f bug fixes 2014-11-22 13:41:05 +00:00
James b9dc309bc2 more robust logic 2014-11-22 12:39:04 +00:00
James 2f80c76f69 fixed cloning of RangeInfos 2014-11-20 13:24:52 +00:00
James 1f69d82a8a working out bugs 2014-11-20 11:51:22 +00:00
James 202358b2af cleaning up 2014-11-18 13:26:57 +00:00
James d546aa99a8 adding support for OR 2014-11-18 12:30:27 +00:00
James b4d00ebbbf adding distribution of "and" into "or" 2014-11-18 12:25:08 +00:00
James 0613014826 extremely simple IN conditions working. 2014-11-18 10:46:44 +00:00
James 2ee1198ba4 all the tests are green 2014-11-18 09:54:10 +00:00
James 35380b03d1 compilation errors, still doesn't compile. 2014-11-17 13:09:57 +00:00
James 553c638cfe further snapshot 2014-11-17 12:58:33 +00:00
James 0dcffe898c snapshot 2014-11-17 11:11:38 +00:00
James 9f99908315 snapshot 2014-11-17 09:53:44 +00:00
Jan Steemann 896e8daec5 removed unused variable 2014-11-13 14:24:59 +01:00
James 23ea59d405 cleaning up, using ReverseOperator. 2014-11-11 08:43:30 +00:00
James 3e612acdda Merge branch 'aql-feature-lazy-index' of ssh://github.com/triAGENS/ArangoDB into aql-feature-lazy-index 2014-11-11 08:23:23 +00:00
James 08e8fd193e Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into aql-feature-lazy-index 2014-11-11 08:21:40 +00:00
Jan Steemann 4a8726ee35 added "split-filters" rule but did not activate it 2014-11-11 00:27:37 +01:00
Jan Steemann 97b5e906da Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql-feature-lazy-index 2014-11-08 23:26:38 +01:00
Jan Steemann 567860cf65 more aggresively optimizer filters 2014-11-08 23:26:04 +01:00
Jan Steemann 9c5d150866 use Ast::ReverseOperator 2014-11-08 22:31:31 +01:00
James 14e6370c22 cleaning up. 2014-11-08 17:35:27 +00:00
James e2b8456395 tests and bugfixes. 2014-11-08 17:31:30 +00:00
James 103db8c8b5 more flexible remove-redundant-OR rule 2014-11-08 16:42:39 +00:00
James bc80940018 correct logic. 2014-11-08 13:52:24 +00:00
James 586cacc2ee replace-redundant-OR optimizer rule first version. 2014-11-08 13:45:14 +00:00
James 53782f5364 bug fix 2014-11-08 11:39:09 +00:00
James b849a6da72 some more cleaning up of replace-OR-with-IN 2014-11-08 11:36:56 +00:00
Jan Steemann b0de1bb226 leaner and meaner error messages 2014-11-07 10:53:00 +01: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 bf30927913 removed canThrow tag for various built-in functions 2014-11-05 14:40:00 +01:00
Jan Steemann 987bfa1285 extended optimizer rule to detect more OR to IN transformation opportunities 2014-11-05 12:10:10 +01:00
James 10220c3207 adding functions. 2014-11-04 22:01:36 +00:00
James 095cc8a9e3 removed incorrect assertion 2014-11-04 21:49:37 +00:00
James 37ab716edc cleaning up 2014-11-04 21:42:34 +00:00
James 3b49921a15 more cleaning up 2014-11-04 21:09:21 +00:00
James 61afce9d10 cleaning up 2014-11-04 21:04:56 +00:00
James 2e48bbb82b tests are green again 2014-11-04 13:16:39 +00:00
James 04770d3563 nearly working better version of previous 2014-11-04 13:01:51 +00:00
James f6e8dcd6ca more general case working. Code needs cleaning up 2014-11-03 22:23:41 +00:00
James 62cb8d3a93 bugfix 2014-11-03 11:10:18 +00:00
James 1ff7e8d252 cleaning up 2014-11-03 10:42:16 +00:00
James fa7668e1ce snapshot 2014-11-03 10:38:05 +00:00
James b301102655 Jan's patch 2014-11-03 09:32:12 +00:00
James 5f6964796e still not working 2014-11-01 19:06:59 +00:00
James 2c10e943b8 still doesn't work 2014-11-01 17:12:44 +00:00
James cd710ed55d snapshot 2014-11-01 16:06:53 +00:00
James d12b5baf12 first try at replace-OR-with-IN optimizer rule. 2014-11-01 14:30:18 +00:00
Jan Steemann 4f68960ed7 removed Ahuacatl [skip ci] 2014-10-31 17:31:00 +01:00
Jan Steemann 31d875921f removed TODOs 2014-10-30 00:45:55 +01:00
Max Neunhoeffer 59c1935466 Get rid of some TODOs and FIXMEs. 2014-10-29 11:25:30 +01:00
Jan Steemann 529bf386d7 fixed some API errors 2014-10-28 11:30:49 +01:00
Max Neunhoeffer 5eed22ad5f Repair distribute-sort-to-cluster rule and make it less aggressive. 2014-10-27 14:02:08 +01:00
Jan Steemann b5c222b9b8 determine whether calculations may run on a DB server 2014-10-27 12:04:06 +01:00
James c99cc155b6 fixing undistribute-remove-after-enum-coll optimizer rule. 2014-10-25 14:24:57 +01:00
Jan Steemann d34c9ade30 re-enable optimizer rule 2014-10-23 16:56:48 +02:00
James 89d554c49b remove some redundant comment 2014-10-21 17:27:39 +01:00
James dc357b96bf fixing distribute in cluster optimizer rule. 2014-10-21 11:04:38 +01:00
James dcf427071c shardIds -> shardKeys in distribute to cluster. 2014-10-17 11:07:33 +01:00
James 32f4216005 updating distribute-in-cluster opt rule 2014-10-17 10:22:26 +01: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
James adca1117ff removing debug output, up dating tests. 2014-10-14 11:29:14 +01:00
James 602f03e4e3 adding distribute-in-cluster optimizer rule. 2014-10-14 10:19:27 +01:00
Jan Steemann 7be268c07c changed AQL optimizer to not throw 2014-10-14 10:14:40 +02:00
James 084078f61f fixed tests for remove-unnecessary-remote-scatter and undistribute-remove-after-enum-coll, renamed distributeInCluster to scatterInCluster. 2014-10-09 08:45:34 +01:00
James d2b86de370 fixed tyopo in comment 2014-10-08 10:55:58 +01:00
Jan Steemann c2f0265d7d fixed optimizer rule remove-unnecessary-remote-scatter 2014-10-07 13:21:05 +02:00
James 4a8ef130f5 DistributeBlock getOrSkipSome method minus the hard part. 2014-10-07 10:33:37 +01:00
James 95fd279a52 distribution node/block declarations etc. 2014-10-06 12:57:09 +01:00
Jan Steemann bf31161ef5 activated if-statement 2014-10-06 10:40:04 +02:00
James 029e443b12 removing debug output 2014-10-04 12:21:34 +01:00
James 8bd3a9718c undistributeRemoveAfterEnumColl now more or less works for REMOVE x._key in coll 2014-10-03 11:32:40 +01:00
James c6c0387e50 undistributeRemoveAfterEnumColl optmizer rule now working 2014-10-03 10:13:11 +01:00
Jan Steemann 0e103d33dc added assertion 2014-10-03 01:37:04 +02:00
James 16d54d6694 snapshot 2014-10-02 10:06:45 +01:00