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