Max Neunhoeffer
5238686ee3
Make Queries preparable and then executable separately.
2014-09-23 15:23:10 +02:00
Max Neunhoeffer
6732913e71
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-23 13:16:24 +02:00
Max Neunhoeffer
067dd690f9
More progress with HTTP API for queries.
2014-09-23 13:16:10 +02:00
Jan Steemann
f8599b0f0f
removed unused instance variable
2014-09-23 13:14:53 +02:00
James
54e8caba4d
interim commit.
2014-09-23 11:27:25 +01:00
James
42ab416497
count, remaining, getBlock for GatherBlock.
2014-09-23 10:10:24 +01:00
James
6bf9c1d461
stub for GatherBlock.
2014-09-23 09:14:33 +01:00
Max Neunhoeffer
591f7acb8b
Fix problems with variable bounds.
2014-09-22 23:30:22 +02:00
Max Neunhoeffer
5e534261e2
Change _equality detection.
...
ATTENTION: This is still not right, yet.
Pondering about solution...
2014-09-22 08:40:21 +02:00
Jan Steemann
74c9653f6f
fixed range-info equality flag after fusing
2014-09-19 22:07:06 +02:00
Jan Steemann
38fdaa4066
removed unused function parameter
2014-09-19 20:28:41 +02:00
Jan Steemann
50e17b8c4f
disabled optimization due to failing tests
2014-09-19 19:30:57 +02:00
Jan Steemann
a58c8661b5
added some query statistics
2014-09-19 18:47:33 +02:00
Jan Steemann
9699091466
optimize IN and NOT IN with one or no members
2014-09-19 18:22:01 +02:00
Jan Steemann
ae5f454bfc
added unary operator
2014-09-19 17:46:36 +02:00
Jan Steemann
9f08e441fd
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-19 17:41:13 +02:00
Jan Steemann
92e46b8191
use SimpleExpression for more types of expressions
2014-09-19 17:40:47 +02:00
Max Neunhoeffer
51aff683d9
Some more code for HTTP API for AQL.
2014-09-19 16:49:55 +02:00
Jan Steemann
9a6dfa1db2
execute several types of expressions in C++
2014-09-19 15:21:01 +02:00
Max Neunhoeffer
94bcd23070
Set up relevant HTTP methods for AQL.
2014-09-19 14:28:54 +02:00
Max Neunhoeffer
c5f5cb322a
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-19 13:59:05 +02:00
Max Neunhoeffer
697dc64b58
Add a QueryRegistry in the ArangoServer and hand it on.
2014-09-19 13:56:46 +02:00
Max Neunhoeffer
0466873092
First step towards correct setup of HTTP API for AQL.
2014-09-19 13:14:19 +02:00
Max Neunhoeffer
28818a1f3d
Remove debugging output.
2014-09-19 13:00:46 +02:00
Jan Steemann
109941207f
reserve more memory for result set
2014-09-19 12:45:08 +02:00
Jan Steemann
1d87957b40
reserve enough memory for simple lists & arrays
2014-09-19 12:44:46 +02:00
Jan Steemann
b10c45af3e
fixed compile warning
2014-09-19 09:22:55 +02:00
Jan Steemann
95c9a0ccba
fixed compile warnings
2014-09-19 09:15:26 +02:00
Jan Steemann
68232715f1
fixed compile warning
2014-09-19 09:05:52 +02:00
Jan Steemann
f782e81661
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-19 01:02:51 +02:00
Jan Steemann
6f4e799ccc
added `profile` option
2014-09-19 01:02:39 +02:00
Max Neunhoeffer
327c5264c5
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-19 00:37:17 +02:00
Max Neunhoeffer
68f246a09f
Add a REST handler for AQL (queries/cursors).
2014-09-19 00:36:57 +02:00
Jan Steemann
a2ac4e5be6
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-18 23:56:51 +02:00
Jan Steemann
0b5c5ae3df
added `maxNumberOfPlans` option
2014-09-18 23:56:09 +02:00
Max Neunhoeffer
05be135afe
Add explicit namespace for template specialisation.
2014-09-18 23:32:33 +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
Max Neunhoeffer
7b3764125c
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-18 16:51:09 +02:00
Max Neunhoeffer
b4af145317
Add QueryRegistry.
2014-09-18 16:50:59 +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
60dc29ef43
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-18 11:26:48 +02:00
Max Neunhoeffer
f36187b052
Do some changes suggested by people in the C++ UG DUS.
2014-09-18 11:07:44 +02:00
Jan Steemann
0a89693345
unique_ptr
2014-09-18 09:58:35 +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
2202d672e7
fixed memleak
2014-09-17 16:01:06 +02:00
Jan Steemann
bd62c36771
scatter / gather 0.0
2014-09-17 16:00:54 +02:00
Jan Steemann
be81bef10c
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-17 14:31:51 +02:00
Jan Steemann
db70b9bfcb
added not-yet used nodes for remote, scatter and gather
2014-09-17 14:31:37 +02:00
Max Neunhoeffer
3c675fee44
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-17 14:08:18 +02:00
Max Neunhoeffer
2cdc5f4cd7
Fix skiplistback-ung and usage in AQL.
2014-09-17 14:07:23 +02:00
Jan Steemann
b9f140e044
removed unused code
2014-09-17 11:31:05 +02:00
Jan Steemann
ebb7db28d1
removed unused code
2014-09-17 11:25:06 +02:00
Jan Steemann
654c2ba0fe
backwards iteration, not yet working
2014-09-17 00:40:24 +02:00
Jan Steemann
93ed0f2255
added reverse iteration for skiplists
2014-09-16 22:23:40 +02:00
Willi Goesgens
c71d142b51
We missed to output the modification options vector.
2014-09-16 18:25:41 +02:00
Jan Steemann
992ac23450
fixed ranges
2014-09-16 15:48:33 +02:00
Jan Steemann
83819407ba
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-16 15:10:59 +02:00
Jan Steemann
54b5e7b034
slightly improved access to dynamic bounds
2014-09-16 15:10:43 +02:00
Willi Goesgens
0d376ab37a
Errormessages: show which execution state we're in so the user can better tell appart runtime from syntax errors.
2014-09-16 11:05:43 +02:00
Max Neunhoeffer
23dc7ef617
Fix the AqlValue Range type leak.
2014-09-16 10:25:25 +02:00
Jan Steemann
6fad76928d
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-15 18:17:53 +02:00
Jan Steemann
677e681b23
adjusted test
2014-09-15 18:17:42 +02:00
Jan Steemann
60f2136b8d
fixed reporting error position in queries with newlines
2014-09-15 18:17:20 +02:00
Willi Goesgens
7e44fa03d0
Try to add a human readable representation to an expression if it throws.
2014-09-15 16:44:55 +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
Jan Steemann
bc7c7c5c60
fixed construction of bounds from json
2014-09-15 16:11:59 +02:00
Max Neunhoeffer
77d6f41b5c
Fix more bugs in variable bounds.
2014-09-15 16:10:54 +02:00
Max Neunhoeffer
7e09d9a39e
Make more const.
2014-09-15 16:10:47 +02:00
Max Neunhoeffer
e0cc389f23
Make more const.
2014-09-15 16:08:00 +02:00
Jan Steemann
2571d075b7
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-15 15:29:02 +02:00
Jan Steemann
a31cb2af30
disable sort optimizations under certain conditions
2014-09-15 15:28:41 +02:00
Willi Goesgens
215e9bf1b4
Use 'list' in plural variables
2014-09-15 15:06:38 +02:00
Willi Goesgens
6d3753f7ca
use 'list' in plural names
2014-09-15 15:06:10 +02:00
Willi Goesgens
6609512297
Improve error handling: first test for whether we're a list, then access its members so we can throw our error message instead of a generic error occuring.
2014-09-15 15:05:14 +02:00
Willi Goesgens
f4f7c53808
Adjust debug output to changed api
2014-09-15 15:04:45 +02:00
Willi Goesgens
8bad042d08
Remove friend declaration since it seems not to be needed anyways.
2014-09-15 13:42:21 +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
Max Neunhoeffer
9bfd5eb8c6
Improve comments for getVarusage and friends.
2014-09-15 13:37:16 +02:00
Max Neunhoeffer
f5eabd49cd
Less copying by returning a ref.
2014-09-15 13:36:56 +02:00
Jan Steemann
6805bfb540
fix compile error
2014-09-15 13:36:38 +02:00
Jan Steemann
5a1dc63946
fixed tons of compile errors in VS
2014-09-15 12:04:49 +02:00
Jan Steemann
112d2a794b
added derived files
2014-09-15 09:46:56 +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
34d2913002
added NOT IN operator, added keywords NOT, AND, OR
2014-09-14 01:34:58 +02:00
Jan Steemann
ed7e5d0e67
allow primary key access via _id attribute, too
2014-09-14 00:46:44 +02:00
Jan Steemann
669cb3b235
renamed files
2014-09-13 01:44:01 +02:00
Jan Steemann
87afcf5e8d
the great rename
2014-09-13 00:10:11 +02:00
Jan Steemann
2394cdf640
optimize away logical negation if possible
...
the AST is checked for logical negations of comparison operations
if appropriate, the negation is converted into the reverse comparsion operation, e.g.
NOT (a == b) => (a != b)
NOT (a != b) => (a == b)
NOT (a > b) => (a <= b)
NOT (a >= b) => (a < b)
NOT (a < b) => (a >= b)
NOT (a <= b) => (a > b)
2014-09-12 18:01:06 +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
Jan Steemann
76c1da4e9c
added test for remove-redundant-calculations
2014-09-12 16:58:01 +02:00
Max Neunhoeffer
cf384710a9
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-12 16:36:00 +02:00
Max Neunhoeffer
ac9c2d8172
Fix crash in tests.
2014-09-12 16:33:43 +02:00
Jan Steemann
f57312baf0
pass AST to expression
2014-09-12 15:40:17 +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
d147be8de3
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-12 15:01:58 +02:00
Max Neunhoeffer
de728e2893
Finish reorganisation of Ast and ExecutionPlan usage.
2014-09-12 15:01:29 +02:00
Max Neunhoeffer
35ffe6b9e4
Restructure who has Ast and ExecutionPlan.
...
Not compiling yet.
2014-09-12 14:44:20 +02:00
Willi Goesgens
4df0c84f43
only add the Json-Expression to the Exception if we're compiled in maintainer mode.
2014-09-12 14:36:01 +02:00
Willi Goesgens
36b7ed81a0
Enrich expressions with more information, by catching them, enhancing and re-throwing them.
2014-09-12 13:57:48 +02:00
Willi Goesgens
ae6956b6b5
AQL_EXECUTEJSON: parse the options similar to AQL_EXPLAIN & AQL_EXECUTE.
2014-09-12 12:09:41 +02:00
Max Neunhoeffer
46cb7304bf
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-12 11:22:28 +02:00
Max Neunhoeffer
247f739bee
Sort out variable usage in variable bound expressions.
...
Not yet compiling, need to sort out access to the Ast object.
2014-09-12 11:21:52 +02:00
Willi Goesgens
3894c8393f
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-09-12 10:41:30 +02:00
Willi Goesgens
6a7bfff7d0
Silence debug output.
2014-09-12 10:40:24 +02:00
Max Neunhoeffer
49999cecb8
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-12 09:44:36 +02:00
Max Neunhoeffer
21f4d9be9d
Teach ExecutionPlans to remember the Ast.
2014-09-12 09:44:17 +02:00
Jan Steemann
78b3eaeb3a
fixed memleak
2014-09-12 09:30:52 +02:00
Jan Steemann
92744da411
fixed invalid memory access
2014-09-12 09:27:58 +02:00
Max Neunhoeffer
e120da8a23
Note what needs doing to fix bug with variable lookup.
2014-09-12 00:59:59 +02:00
Max Neunhoeffer
2569dac1b9
Fix a bug with variable bounds.
2014-09-12 00:35:47 +02:00
Max Neunhoeffer
ee9a24f7ba
Snapshot, broxen.
2014-09-11 18:50:43 +02:00
Max Neunhoeffer
8bab78f4b5
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/ExecutionNode.cpp
2014-09-11 18:47:31 +02:00
Max Neunhoeffer
088e0ed2f9
Fix serialisation of IndexRangeNode.
2014-09-11 18:45:47 +02:00
Jan Steemann
afed9019cf
added assertion
2014-09-11 18:27:44 +02:00
Jan Steemann
0b018d26cf
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-11 18:19:14 +02:00
Jan Steemann
2767bdc7e0
use edge index on both _from and _to
2014-09-11 18:19:05 +02:00
Willi Goesgens
f25f12c098
Move parsing of calculations out of the whole json parser, so we can properly instanciate the transaction first.
2014-09-11 18:00:00 +02:00
Jan Steemann
491592239c
use primary index
2014-09-11 17:19:15 +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
94e95a0274
Repair skipSome for IndexRangeBlock, untested.
2014-09-11 15:42:52 +02:00
Max Neunhoeffer
fd77577868
Add missing } to avoid >417 errors.
2014-09-11 14:56:31 +02:00
Max Neunhoeffer
aa00df7edf
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into mmh
...
Conflicts:
arangod/Aql/ExecutionBlock.cpp
arangod/Aql/Query.h
2014-09-11 14:31:13 +02:00
Max Neunhoeffer
31e02e42cb
Instanciate expressions for variable bounds.
...
And various cleanups.
2014-09-11 14:28:38 +02:00
Jan Steemann
672eec350e
removed "old" AQL function
2014-09-11 13:56:15 +02:00
Jan Steemann
71600f89b7
use RANGE AqlValue type
2014-09-11 11:56:40 +02:00
Max Neunhoeffer
821e9b4533
Factor out andCombineLowerBounds and andCombineUpperBounds.
2014-09-11 10:26:12 +02:00
Jan Steemann
cb4c60a36f
explain tests
2014-09-11 09:54:59 +02:00
Max Neunhoeffer
028740a4bd
Come up with plan for variable bounds execution.
2014-09-10 16:44:08 +02:00
Max Neunhoeffer
5ff594f3bc
Add some debugging output.
2014-09-10 16:36:12 +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
8bb938b6de
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into mmh
2014-09-10 15:21:00 +02:00
Max Neunhoeffer
69c464ef13
Restructure RangesInfo handling to allow for variable ranges.
2014-09-10 15:20:28 +02:00
Jan Steemann
1d2c21aec5
create verbose plans
2014-09-10 14:15:37 +02:00
Willi Goesgens
cfbd8ac3bf
CPP-i-fy the printf for the nice error message.
2014-09-10 13:34:33 +02:00
Max Neunhoeffer
dec5cbed76
more Cleanup.
2014-09-10 12:14:15 +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
7bca4da5dc
Merge branch 'aql2' into mmh
2014-09-10 11:16:44 +02:00
Max Neunhoeffer
6795f425ab
Cleanup buildRangeInfo.
2014-09-10 11:15:43 +02:00
Jan Steemann
ba21bf4019
fixed cloning of IndexRangeNodes
2014-09-10 10:54:32 +02:00
Jan Steemann
4ab6d8f658
fixed clone method for IndexRangeNode
2014-09-10 10:43:32 +02:00
Max Neunhoeffer
7dcdd27891
Merge branch 'aql2' into mmh
2014-09-10 09:41:54 +02:00
Max Neunhoeffer
83b31459e1
Fix another bug with new ranges format.
2014-09-10 09:39:11 +02:00
Max Neunhoeffer
b98cb86605
Take out debugging output.
2014-09-10 09:38:53 +02:00
Max Neunhoeffer
673df76b94
Fix bug with new RangeInfo.
2014-09-10 08:57:18 +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
41375624d2
optionally make AQL_EXPLAIN return all generated plans
2014-09-09 15:42:22 +02:00
Jan Steemann
2a49bf843d
updated tests
2014-09-09 15:20:42 +02:00
Willi Goesgens
de32cddc1e
Fix memory leak in case of exceptions thrown when parsing the variable from json
2014-09-09 13:22:49 +02:00
Willi Goesgens
84cb676a34
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-09-09 11:50:09 +02:00
Willi Goesgens
dbdae3faa9
Styleguide cleanup: "initialize"
2014-09-09 11:49:44 +02:00
Jan Steemann
8127ff49bd
more tests
2014-09-09 11:04:30 +02:00
Jan Steemann
ff2334b575
renamed method
2014-09-09 10:40:57 +02:00
Jan Steemann
8bf495f9b5
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-09 09:58:04 +02:00
Jan Steemann
639a026c66
fixed tests
2014-09-09 09:57:52 +02:00
Max Neunhoeffer
9bf954e586
Cleanup indentation and formatting.
2014-09-09 09:10:22 +02:00
Jan Steemann
28fd6b84c9
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-09-08 17:33:21 +02:00
Jan Steemann
4bda3e3979
finished test for remove-redundant-sorts
2014-09-08 17:33:11 +02:00
Max Neunhoeffer
e35497c933
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-08 15:19:47 +02:00
Willi Goesgens
e87e79ea77
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-09-08 15:07:25 +02:00
Willi Goesgens
6e1fbbddfc
More userfriendly errormessages if creating the transaction fails.
2014-09-08 15:07:05 +02:00
Max Neunhoeffer
0eed7a8344
Handle exception correctly in AqlValue.
2014-09-08 14:42:21 +02:00
Max Neunhoeffer
b011876512
Another memleak and some exception-safety.
2014-09-08 13:55:58 +02:00
Max Neunhoeffer
bc54c047ba
Fix another memleak.
2014-09-08 11:52:41 +02:00
Max Neunhoeffer
dd48ba5d6d
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-08 11:01:22 +02:00
Max Neunhoeffer
06a525929c
Fix a memleak with hash index lookup in AQL.
2014-09-08 11:01:03 +02:00
Jan Steemann
8fdb2f05af
added positive list of nodetypes
2014-09-08 10:39:59 +02:00
Max Neunhoeffer
12ece0ee5d
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-09-08 10:35:33 +02:00
Jan Steemann
478007089a
do not push sort beyond limit, collect etc.
2014-09-08 10:31:44 +02:00
Max Neunhoeffer
eb6fab36e8
Fix a leak in FilterBlock.
2014-09-08 10:29:48 +02:00
Willi Goesgens
84b0d4a35e
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-09-08 09:32:37 +02:00
Max Neunhoeffer
b88bceda00
Fix memleaks.
2014-09-05 18:20:48 +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
30b33a1793
Fix buffer overrun while comparing two sortNodes
2014-09-04 17:29:22 +02:00
Willi Goesgens
e23cbf1add
Work on Filter to IndexRangeNode tests
2014-09-04 16:33:37 +02:00
Willi Goesgens
2943451c6c
'var' is a js keyword, rename it to variable.
2014-09-04 13:26:52 +02:00
Willi Goesgens
8f1123c8b9
Rangeinfo: fix handling of < and >; the handling of _undefined was wrong and we would never add these ranges.
2014-09-04 11:52:35 +02:00
Willi Goesgens
ec67a07f9b
Parser: when throwing parse exceptions add the query and a pointer to the actual indicated error to the message.
2014-09-03 16:13:35 +02:00
Willi Goesgens
61d1bfa76b
SortIndex: only indicate we modified a rule if we realy did.
2014-09-03 09:47:08 +02:00
Max Neunhoeffer
6f22f5529a
Fix memory leak, AqlValues must be destroyed explicitly.
2014-09-02 15:19:21 +02:00
Max Neunhoeffer
fb9481c208
Fix another memory leak.
2014-09-02 14:33:08 +02:00
Max Neunhoeffer
b86dfdd2b0
Fix a memory leak in deletion of AqlValues that are no longer needed.
2014-09-02 11:52:43 +02:00
Max Neunhoeffer
7e7b47ab71
Sort out negative cost estimations.
2014-09-02 10:15:02 +02:00
Willi Goesgens
f0952e9109
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-09-01 18:49:10 +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
Willi Goesgens
c1d0f8bccc
SortIndex: as long as the Index superseeds the sort critereon its still a full match.
2014-09-01 18:29:09 +02:00
Jan Steemann
822c5daa32
assert costs are positive
2014-09-01 15:03:23 +02:00
Willi Goesgens
3b93d0847d
SortIndex: fix the way we register our results to the framework
2014-09-01 13:33:18 +02:00
Willi Goesgens
cd29afd88f
Fix pattern to index matcher
...
- if the number of match patterns is zero, this is not a match at all.
- if the number of condition is unequal match pattern to a match pattern this isn't a full match.
2014-09-01 13:31:39 +02:00
Max Neunhoeffer
ecf379c113
Fix a bug with the level management of the useSortRule.
2014-08-30 00:54:47 +02:00
James
b6f9f11e5e
added all node types to FilterToEnumCollFinder.
2014-08-29 17:44:32 +02:00
James
b00521b881
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-29 17:41:37 +02:00
James
671824985e
added all node types to FilterToEnumCollFinder.
2014-08-29 17:40:56 +02:00
Jan Steemann
53d0b740db
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-29 17:37:46 +02:00
Jan Steemann
a5b207188f
added optimizer flags for AQL_EXECUTE
2014-08-29 17:37:35 +02:00
James
38520d49eb
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/OptimizerRules.cpp
2014-08-29 17:17:59 +02:00
James
21febb33ac
cleaning up RangeInfo stuff.
2014-08-29 17:16:08 +02:00
Willi Goesgens
40361d63dc
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-29 17:10:35 +02:00
Willi Goesgens
1f0ce045d3
remove debug output
2014-08-29 17:10:20 +02:00
Jan Steemann
d57ed2749a
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
2014-08-29 17:09:18 +02:00
Jan Steemann
a3d2d0e3f1
renamed file
2014-08-29 17:09:07 +02:00
Max Neunhoeffer
bf1f11e651
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
2014-08-29 16:57:56 +02:00
Max Neunhoeffer
fa9e55eafb
Finish taking into account multiple FILTER for IndexRangeRule.
2014-08-29 16:57:34 +02:00
Willi Goesgens
24128830ca
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2
2014-08-29 16:45:55 +02:00
Willi Goesgens
0cb12fc3f5
SortIndex: initialize the rangeInfo the proper way.
2014-08-29 16:45:20 +02:00
Jan Steemann
3b2cf352ad
added functionality to activate/deactivate optimizer rules
2014-08-29 16:31:07 +02:00
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
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
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
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
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
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
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