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
Jan Steemann
7f9da1c397
asserts
2014-10-02 10:34:08 +02:00
Jan Steemann
0d9cdfc87c
struct Index
2014-10-01 15:35:16 +02:00
James
7a34d065b5
cleaning up and registering undistributeRemoveAfterEnumColl.
2014-10-01 10:43:54 +01:00
James
2fd8c2b185
prelim version of undistributeRemoveAfterEnumColl
2014-10-01 10:17:36 +01:00
James
22597af5ac
version of removeUnnecessaryRemoteScatter which changes the plan in place.
2014-09-30 10:10:03 +01:00
James
3daaaad855
fixing last
2014-09-30 08:48:29 +01:00
James
301ccddf83
Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel
2014-09-30 08:29:36 +01:00
James
d204ce4019
adding registration of the remove unnecessary remote scatter optimizer rule.
2014-09-30 08:29:21 +01:00
Jan Steemann
f3015bd70a
fixed indentation
2014-09-29 16:52:45 +02:00
Jan Steemann
b31987fea7
pass data to RemoteNode
2014-09-29 16:36:52 +02:00
Jan Steemann
643ffa104d
moved isCoordinator to function of its own
2014-09-29 09:38:15 +02:00
Jan Steemann
188fe0c43c
accidently committed local modifications. revert
2014-09-29 09:31:27 +02:00
Jan Steemann
0d075dca3f
pass queryRegistry into the AQL functions
2014-09-29 09:30:32 +02:00
James
d53da7ce4a
Optimiser rule to get rid of a RemoteNode->ScatterNode combination
2014-09-27 16:43:08 +01:00
Jan Steemann
c3ce45e0dd
added block instanciation for coordinator, v0.0.0
2014-09-26 20:17:42 +02:00
Jan Steemann
f462c5f620
add database and collection info to gather nodes
2014-09-26 13:58:02 +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
Willi Goesgens
6c81f630a3
Add filter rule which moves Filters & Calculations into the parts of a Plan that is distributed to clusters.
2014-09-25 17:08:20 +02:00
Max Neunhoeffer
591f7acb8b
Fix problems with variable bounds.
2014-09-22 23:30:22 +02:00
Jan Steemann
d03faffc53
remove subqueries that produce results that are not used in a query
2014-09-18 23:03:43 +02:00
Jan Steemann
4a2693cebd
removed #if
2014-09-18 13:23:38 +02:00
Jan Steemann
50571f84db
changed node detection for cluster
2014-09-18 13:21:58 +02:00
Max Neunhoeffer
ce2f822521
Merge branch 'aql1' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-18 09:12:25 +02:00
Jan Steemann
5c552d4137
optimizer rule for scatter / gather
2014-09-17 17:29:36 +02:00
Max Neunhoeffer
ae5d231c5d
Add a comment.
2014-09-17 16:43:40 +02:00
Max Neunhoeffer
e054b738c9
Take out some debugging messages.
2014-09-17 16:41:49 +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
Jan Steemann
992ac23450
fixed ranges
2014-09-16 15:48:33 +02:00
Jan Steemann
54b5e7b034
slightly improved access to dynamic bounds
2014-09-16 15:10:43 +02:00
Jan Steemann
677e681b23
adjusted test
2014-09-15 18:17:42 +02:00
Max Neunhoeffer
6cf8b0cf75
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-15 16:16:33 +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
Max Neunhoeffer
77d6f41b5c
Fix more bugs in variable bounds.
2014-09-15 16:10:54 +02:00
Jan Steemann
a31cb2af30
disable sort optimizations under certain conditions
2014-09-15 15:28:41 +02:00
Max Neunhoeffer
4a1e3d6b9c
Fix bug with variable bounds: must not access document set in this node.
2014-09-15 13:37:38 +02:00
Jan Steemann
5a1dc63946
fixed tons of compile errors in VS
2014-09-15 12:04:49 +02:00
Max Neunhoeffer
511930a8c1
Make variable bounds compile-time switchable.
2014-09-14 22:30:45 +02:00
Max Neunhoeffer
025d57175e
Disable variable bounds to let tests run again.
2014-09-14 22:26:57 +02:00
Max Neunhoeffer
e617c091e7
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-14 21:47:46 +02:00
Max Neunhoeffer
b48d1c1270
Fix more bugs.
2014-09-14 21:47:37 +02:00
Jan Steemann
ed7e5d0e67
allow primary key access via _id attribute, too
2014-09-14 00:46:44 +02:00
Jan Steemann
4f6f2ac34f
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/ExecutionBlock.cpp
2014-09-12 17:03:04 +02:00
Max Neunhoeffer
0ae0f126b2
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-12 15:24:28 +02:00
Max Neunhoeffer
465cf950c9
Try to fix bug with variable bounds.
...
Not yet finished.
2014-09-12 15:24:08 +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
Jan Steemann
2767bdc7e0
use edge index on both _from and _to
2014-09-11 18:19:05 +02:00
Jan Steemann
c3b90a1037
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-11 17:02:03 +02:00
Jan Steemann
34beb65148
use primary index & edge index
2014-09-11 17:01:53 +02:00
Max Neunhoeffer
6c69129a71
Start computing the variable bounds at runtime.
2014-09-11 16:58:59 +02:00
Max Neunhoeffer
31e02e42cb
Instanciate expressions for variable bounds.
...
And various cleanups.
2014-09-11 14:28:38 +02:00
Max Neunhoeffer
c79b95b048
Activate finding of variable bounds.
2014-09-10 16:35:33 +02:00
Max Neunhoeffer
27a9dd050e
Variable bounds are recognised.
2014-09-10 16:10:02 +02:00
Max Neunhoeffer
31a1c95e40
Further cleanup of IndexRangeRule and ranges infrastructure.
...
Prepare for variable bounds.
2014-09-10 12:07:30 +02:00
Max Neunhoeffer
dfed690d56
Further cleanup of EQ method in useIndexRange rule.
2014-09-10 11:36:11 +02:00
Max Neunhoeffer
6795f425ab
Cleanup buildRangeInfo.
2014-09-10 11:15:43 +02:00
Max Neunhoeffer
7dcdd27891
Merge branch 'aql2' into mmh
2014-09-10 09:41:54 +02:00
Max Neunhoeffer
b98cb86605
Take out debugging output.
2014-09-10 09:38:53 +02:00
Willi Goesgens
3e6e008a81
useIndexForSort:
...
- redirect to pass #5 here too, so now possible obsolete CalculaionNodes are removed by the removeUnnecessaryCalculationsRule
2014-09-09 17:19:49 +02:00
Max Neunhoeffer
8aa75f01a5
Snapshot to move home.
2014-09-09 17:05:47 +02:00
Willi Goesgens
202636cee0
Refactor Optimizer ordering
...
- create enum with the different steps named
- unify numbering scheme
- deploy enum to all places where int level was used
- add passN enum so you can jump to a Pass when calling addPlan
useIndexForSort:
- remove inline deletion of dependend nodes of our (removed) sortnode
- redirect to pass #5 so now possible obsolete CalculaionNodes are removed by the removeUnnecessaryCalculationsRule
2014-09-09 16:27:49 +02:00
Jan Steemann
2a49bf843d
updated tests
2014-09-09 15:20:42 +02:00
Jan Steemann
639a026c66
fixed tests
2014-09-09 09:57:52 +02:00
Jan Steemann
4bda3e3979
finished test for remove-redundant-sorts
2014-09-08 17:33:11 +02:00
Jan Steemann
8fdb2f05af
added positive list of nodetypes
2014-09-08 10:39:59 +02:00
Jan Steemann
478007089a
do not push sort beyond limit, collect etc.
2014-09-08 10:31:44 +02:00
Willi Goesgens
02207d5f70
Cost estimates: IndexRangeNodes without range have to be more expensive than ones with.
2014-09-05 14:23:25 +02:00
Willi Goesgens
ebbb9c34b6
Redundand-Sort: implement removing of left item superseeding the sort
2014-09-04 17:53:20 +02:00
Willi Goesgens
e23cbf1add
Work on Filter to IndexRangeNode tests
2014-09-04 16:33:37 +02:00
Willi Goesgens
61d1bfa76b
SortIndex: only indicate we modified a rule if we realy did.
2014-09-03 09:47:08 +02:00
Willi Goesgens
021f3371f2
SortIndex: move the unlinking of the sort attributes after unlinking the sort itself
2014-09-01 18:30:49 +02:00