1
0
Fork 0
Commit Graph

589 Commits

Author SHA1 Message Date
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