1
0
Fork 0
Commit Graph

512 Commits

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