Max Neunhoeffer
4ae076db40
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-29 15:51:08 +02:00
Max Neunhoeffer
65e765478d
Make IndexRange rule look for multiple variables in FILTERs.
...
Still TODO: Pickup further variables when seeing FILTERs.
2014-08-29 15:49:37 +02:00
Jan Steemann
91590f754f
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-29 15:49:35 +02:00
Jan Steemann
b8e12063e2
added "rules" output
2014-08-29 15:27:02 +02:00
James
e1ee728a75
remove debug prints.
2014-08-29 14:41:20 +02:00
Willi Goesgens
67894665f4
revert #cef3864e29cfb5308df55e19a2186af07c21d3b8 which was a wrong conflict resolution.
2014-08-29 14:38:39 +02:00
James
fd4b4e5df4
"proper" estimateCost method for IndexRangeNode.
2014-08-29 14:22:46 +02:00
Thomas Schmidts
3a695c15fd
Added text to documentation
2014-08-29 14:09:49 +02:00
Willi Goesgens
d6881ddabd
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-29 12:27:33 +02:00
Jan Steemann
1980d8b832
stable sort
2014-08-29 12:24:03 +02:00
Jan Steemann
e47c2b99d3
use stable sort
2014-08-29 12:22:27 +02:00
Willi Goesgens
be1c84f480
Exceptions: don't print Backtraces if the exception is handled in the subsequent js code.
2014-08-29 12:15:19 +02:00
Jan Steemann
5928d285ad
fixed WAL recovery which hung in certain conditions
2014-08-29 12:03:38 +02:00
James
16ef52bd81
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-29 11:52:46 +02:00
James
46b40015ee
renovating RangeInfo stuff to avoid mem leaks.
2014-08-29 11:52:19 +02:00
Max Neunhoeffer
c9193e44b8
Sort out some exception issues.
2014-08-29 11:37:01 +02:00
Max Neunhoeffer
aefea865f5
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-29 11:09:44 +02:00
Max Neunhoeffer
f780cff9c6
Fix a bug with a new plan and insert a catch.
2014-08-29 11:09:18 +02:00
Jan Steemann
6c3544cffb
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-29 10:59:33 +02:00
Jan Steemann
8a96f907b0
refactored function argument conversion
2014-08-29 10:59:24 +02:00
James
b25f9d8301
fixed bug in last.
2014-08-29 09:34:23 +02:00
James
7fe3cd8c68
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-29 09:26:40 +02:00
James
58a288fe77
copying a RangeIndexNode now properly copies the range infos.
2014-08-29 09:26:11 +02:00
Jan Steemann
a32fac3747
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-29 09:20:36 +02:00
Jan Steemann
43ec93109f
optimizer rules are now kept in a sorted map
...
rules can optionally be disabled at runtime
2014-08-29 00:08:29 +02:00
Jan Steemann
c47807e2ee
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 16:56:05 +02:00
James
a14be1d3be
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-28 16:55:39 +02:00
Jan Steemann
687c56f923
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 16:55:22 +02:00
James
4b5e42c52a
bugfixes and leaks fixed.
2014-08-28 16:55:18 +02:00
Jan Steemann
d3624c3244
attempt to fix infinite ranges in skiplists
2014-08-28 16:54:45 +02:00
Max Neunhoeffer
16a5899e8f
Add a FIXME.
2014-08-28 16:52:03 +02:00
Max Neunhoeffer
c1568d94f0
Improve a comment.
2014-08-28 16:50:26 +02:00
Jan Steemann
2a104b8bcb
fixed several AQL tests
2014-08-28 16:19:05 +02:00
Jan Steemann
fd5e687ef0
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 15:34:17 +02:00
Jan Steemann
694d64da3c
do not optimize away non-deterministic functions
2014-08-28 15:34:06 +02:00
Max Neunhoeffer
84199295ba
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-28 15:21:28 +02:00
Max Neunhoeffer
af340d6dd6
Make sure varUsage is valid before instanciation.
2014-08-28 15:21:05 +02:00
James
3f646034c8
cleaning up IndexRangeBlock::readSkiplistIndex
2014-08-28 15:12:50 +02:00
James
9f6f15f85f
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-28 15:02:27 +02:00
James
9644fc87c7
fixed bug in last.
2014-08-28 15:00:53 +02:00
Max Neunhoeffer
665777c59a
Make dummyRule local in the optimizer.
2014-08-28 14:49:33 +02:00
James
05dac4f52d
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/Optimizer.cpp
2014-08-28 14:41:51 +02:00
James
1deed3ebce
fixed bugs useIndexRange.
2014-08-28 14:39:26 +02:00
Jan Steemann
910c029730
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 14:28:11 +02:00
Jan Steemann
a2da3eb7ee
removed debug output
2014-08-28 14:27:43 +02:00
Jan Steemann
e686fcaa85
fixed unused variables warning
2014-08-28 14:18:14 +02:00
Jan Steemann
844955cafd
disabled debug output
2014-08-28 14:10:41 +02:00
Jan Steemann
531bb921ff
disabled broken rules
2014-08-28 14:04:32 +02:00
Jan Steemann
04b322d9e0
sorting
2014-08-28 14:04:24 +02:00
Jan Steemann
7ba6b17d45
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-28 13:54:37 +02:00
Jan Steemann
ca814c9733
remove-redundant-sorts
2014-08-28 13:54:17 +02:00
Willi Goesgens
75d9d4ee60
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-28 13:48:44 +02:00
Willi Goesgens
0a1d5edb29
SortToRange: fix abort critereon for non-skiplist indexes
2014-08-28 13:48:03 +02:00
Max Neunhoeffer
9b49328218
Rearrange levels for optimizer rules. Use rules multiple times.
2014-08-28 13:46:46 +02:00
Max Neunhoeffer
e1b557ff20
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/Optimizer.cpp
2014-08-28 13:33:33 +02:00
Max Neunhoeffer
12e15b6c2e
Adjust the output level of useSortIndex rule.
2014-08-28 13:29:44 +02:00
Max Neunhoeffer
338a9c6c54
Implement permutation of EnumerateCollectionNodes.
...
Also: restructure leveling of rules.
And: remove some debugging output (and add some other).
2014-08-28 13:28:04 +02:00
Jan Steemann
2eb38c9657
remove-redundant-sorts, initial
2014-08-28 12:39:28 +02:00
Willi Goesgens
9d4b1b1c88
SortNode: our variables can also be in other ExecutionNodes then the Calculation node. Take this into account.
...
SortIndex optimizer: when looking at our properties only check Calculation nodes, ignore other types of ExecutionNodes
2014-08-28 11:48:23 +02:00
Jan Steemann
a014b44ba4
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Utils/Transaction.h
2014-08-28 11:06:14 +02:00
Jan Steemann
5930c3db70
added NTH function
2014-08-28 11:03:48 +02:00
James
ee3a401c88
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/ExecutionNode.h
2014-08-28 09:48:49 +02:00
James
511f08e4ca
adding stub for estimateCost for IndexRangeNode.
2014-08-28 09:48:05 +02:00
Max Neunhoeffer
6926c2dfba
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-28 09:36:55 +02:00
Max Neunhoeffer
b9cfff7c89
Fix infinite recursion bug in canThrow for subqueries.
2014-08-28 09:36:15 +02:00
Willi Goesgens
7b9b3d8570
fix memory leak in parametrization of new IndexRangeNodes
2014-08-28 09:20:47 +02:00
Jan Steemann
b9024aeaeb
basic C++ implementations for dedicated AQL functions
2014-08-28 01:24:42 +02:00
Jan Steemann
6d0dfcdeba
changed ctor
2014-08-28 00:27:24 +02:00
Jan Steemann
2d2df1b5da
added TODO
2014-08-28 00:18:19 +02:00
Jan Steemann
a409f37dc6
re-use already declared optimizer rules for all queries
2014-08-28 00:03:23 +02:00
Jan Steemann
1e0a393d48
fixed wrong comment
2014-08-27 23:54:32 +02:00
Jan Steemann
37295fb2b1
changed wrong comments
2014-08-27 23:54:06 +02:00
Jan Steemann
b10ae65d58
rules have names
2014-08-27 23:53:53 +02:00
Jan Steemann
2628afb426
cleanup
2014-08-27 22:46:26 +02:00
Max Neunhoeffer
cc20fbbe58
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 22:10:54 +02:00
Max Neunhoeffer
b2d44cd35e
Add show() for ExecutionPlans.
2014-08-27 22:10:38 +02:00
Max Neunhoeffer
f279c40262
Fix an early destruction bug.
2014-08-27 22:10:18 +02:00
James
a84de9bbac
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 21:07:53 +02:00
James
ee88997e8e
skiplists in IndexRangeBlock working.
2014-08-27 21:07:34 +02:00
Jan Steemann
5b20348d26
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-27 19:39:13 +02:00
Jan Steemann
dfaca5523c
initialize variable
2014-08-27 19:38:53 +02:00
Jan Steemann
cd1d0c45f8
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/V8Server/v8-query.cpp
2014-08-27 19:25:37 +02:00
Jan Steemann
cda10393f5
some traversal speedups
2014-08-27 18:56:51 +02:00
Max Neunhoeffer
c079de3a94
Adjust a cout message.
2014-08-27 16:58:20 +02:00
Max Neunhoeffer
4441316115
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 16:52:57 +02:00
Max Neunhoeffer
449d0cd961
Completely redo the optimizer.
2014-08-27 16:52:38 +02:00
James
b8a3382a7f
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 16:51:03 +02:00
Jan Steemann
140e10a2a0
added more node types
2014-08-27 16:50:43 +02:00
James
0638a5cbda
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 16:32:28 +02:00
Jan Steemann
679b6bd10f
alwaysProducesBoolValue()
2014-08-27 16:24:14 +02:00
James
c8667290b5
fixing bugs in last and removing debug prints.
2014-08-27 16:15:53 +02:00
Willi Goesgens
da6bac560d
SortIndex optimizer: clean up namingschemes, add documentation.
2014-08-27 16:09:25 +02:00
Willi Goesgens
e67a2ed36a
SortIndex optimizer:
...
- remove SortNodes which are superseeded by an IndexRangeNode
- calculate the properties of an SortNode before entering the walker
- add abstraction class
2014-08-27 15:39:37 +02:00
James
61ee74e0fd
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 14:52:05 +02:00
James
a3830c2566
IndexRangeNode now working with skiplists.
2014-08-27 14:51:56 +02:00
Max Neunhoeffer
27d8409425
Implement canThrow method for SubqueryNode.
2014-08-27 13:07:05 +02:00
Max Neunhoeffer
47da2daa76
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-27 12:11:24 +02:00
Max Neunhoeffer
23723d8e48
Add an explanation of index operators.
2014-08-27 12:10:51 +02:00
Jan Steemann
86ce08c96f
added comments
2014-08-27 11:34:37 +02:00
Willi Goesgens
5e75ec8bb5
Expression:
...
- add function isSimpleAccessReference() to check whether it is a coll.attr.attr
- add function getAccessNRef() to retrieve pair("attr.attr", "coll"),
SortIndex optimizer:
- use the new functionality to get better readable code.
rename indexes -> indices
2014-08-26 17:26:46 +02:00
Willi Goesgens
18d308af0f
SortNode: add method that looks up the expressions referenced by the Sortnode, and returns them paired with ASC/DESC.
2014-08-26 15:38:55 +02:00
James
851420c723
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-26 15:19:13 +02:00
Willi Goesgens
ff4e00eb86
SortIndex optimizer:
...
- rename getIndexes to getIndexesUnordered
- add CompareIndex & getIndexesOrdered to retrieve a list which does an ordered match on the available skiplist indices
- fetch the ordered matching indices
- only remove the sortnode if its a full qualified match.
2014-08-26 13:53:19 +02:00
James
b8415aaca5
making useIndexRange abort if it encounters a limit node.
2014-08-26 13:11:31 +02:00
James
ad3e6d22a1
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-26 13:02:58 +02:00
James
bf952d37be
IndexRangeBlock working for hash indexes.
2014-08-26 13:02:31 +02:00
Willi Goesgens
27063a08b5
SortIndex optimizer:
...
- group the ASC/DESC
- find out the real attribute name for nested attributes
2014-08-26 09:48:20 +02:00
Max Neunhoeffer
a7b3f4fe1f
Take out TODO line.
2014-08-26 09:46:00 +02:00
Max Neunhoeffer
4fecd85e4c
Add a destructor to delete _ranges in FilterToEnumCollFinder.
2014-08-26 09:45:32 +02:00
Max Neunhoeffer
a7814a7ad2
Return headers and body in ArangoClusterComm.syncRequest method.
2014-08-25 16:35:02 +02:00
Willi Goesgens
10603f904d
Walker: the process of walking now is aborted if the before-hook returns true.
2014-08-25 15:48:21 +02:00
James
30264eb6d2
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-25 15:12:09 +02:00
James
8896a01753
making the arguments of IndexRangeNode more general.
2014-08-25 15:11:54 +02:00
Willi Goesgens
91d420ea07
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-25 13:33:59 +02:00
James
776cb02f1e
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-25 13:12:54 +02:00
James
033735fbba
removing debug output and commenting out useIndexRange.
2014-08-25 13:12:19 +02:00
James
c801fc4992
deserialising of IndexRangeNode finally working.
2014-08-25 13:05:22 +02:00
Willi Goesgens
5bcc8d784f
Add the nodeID we tried to lookup without success in the exception message.
2014-08-25 11:43:48 +02:00
Willi Goesgens
f6b1433160
When compiled in maintainer mode, print c-backtraces on Arango Exceptions too.
2014-08-25 10:27:25 +02:00
Jan Steemann
92739aa04d
indentation
2014-08-23 02:58:28 +02:00
Jan Steemann
80e5ceeb52
emplace
2014-08-23 01:28:58 +02:00
Jan Steemann
dcfa59806e
more C++11
2014-08-23 00:51:13 +02:00
Jan Steemann
86bf8e3c4f
removed unused function argument
2014-08-23 00:50:37 +02:00
Jan Steemann
683fbf4ec4
using emplace
2014-08-23 00:48:39 +02:00
Jan Steemann
7330597f15
fixed ambigious method JsonHelper::getStringValue
2014-08-22 21:53:29 +02:00
Jan Steemann
835b26f17c
only initialize v8 dispatcher when there is a dispatcher
...
when the server is started with the --no-server option, the v8 dispatcher
was still initialized and this always failed and printed error messages.
2014-08-22 21:51:53 +02:00
Jan Steemann
a70a9613f6
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
lib/BasicsC/voc-errors.h
2014-08-22 21:51:38 +02:00
Jan Steemann
b978133e1b
fixed compile warning
2014-08-22 20:05:44 +02:00
Jan Steemann
768c3b9bbc
comments
2014-08-22 18:03:42 +02:00
Jan Steemann
04fbe668cc
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-22 17:58:12 +02:00
Jan Steemann
1d34fa4896
stub for IndexRangeBlock
2014-08-22 17:58:02 +02:00
Jan Steemann
9f9277357b
some more asserts
2014-08-22 17:57:47 +02:00
Max Neunhoeffer
4b229c5873
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
lib/Basics/JsonHelper.h
2014-08-22 17:02:06 +02:00
Max Neunhoeffer
8fd6cd1184
Implement clear unneeded registers.
2014-08-22 17:00:53 +02:00
James
45949608a1
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-22 16:58:02 +02:00
James
99623c8e2a
finished deserialising of IndexRangeNode.
2014-08-22 16:57:34 +02:00
Willi Goesgens
8a402683ed
Optimizers: start implementing the sorting via indexes.
2014-08-22 16:48:52 +02:00
James
8559f60766
fixed bugs in last.
2014-08-22 16:25:23 +02:00
James
931aaee618
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-22 16:19:01 +02:00
James
4c49a3be5e
deserialising of IndexRangeNode almost completed.
2014-08-22 16:17:10 +02:00
Jan Steemann
514c2e74f3
indentation
2014-08-22 13:56:01 +02:00
Jan Steemann
45d5d0f53a
cppcheck
2014-08-22 13:53:21 +02:00
Jan Steemann
55608ceae2
use index nodes
2014-08-22 13:53:01 +02:00
Jan Steemann
3a60913afe
fix JSON serialization of indexes
2014-08-22 13:13:07 +02:00
Jan Steemann
0a439474e5
cppcheck
2014-08-22 12:51:26 +02:00
Jan Steemann
5d5aaaa949
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-22 12:00:55 +02:00
James
8d31137698
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-22 10:56:16 +02:00
James
3987067339
cleaning up and readded toJsonHelper method for IndexRangeNode.
2014-08-22 10:55:51 +02:00
Max Neunhoeffer
7d60eff20d
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-22 10:54:38 +02:00
Max Neunhoeffer
9f868e9a4a
Fix a use after free bug.
2014-08-22 10:54:12 +02:00