Wilfried Goesgens
dae95de667
Merge branch 'devel' of github.com:arangodb/ArangoDB into JHMH
2015-10-21 14:54:01 +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
fbfc7773ef
serialization and deserialization of IndexNodes
2015-10-08 12:02:27 +02:00
Jan Steemann
37bc5b64ff
fixed segfault
2015-10-05 13:49:23 +02:00
Jan Steemann
1c990b7324
Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
...
Conflicts:
arangod/Aql/ExecutionNode.cpp
2015-10-05 10:32:36 +02:00
Jan Steemann
7d4c379598
small modifications, temporarily disabled interchange-adjacent-enumerations
2015-10-02 19:53:35 +02:00
Jan Steemann
32556a828e
fixed potentially invalid cast
2015-10-02 17:40:34 +02:00
Michael Hackstein
4c065f470c
Registered Index Node in several places where it was not yet handled.
2015-10-02 17:02:39 +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
47e1b3ceb8
stringify conditions
2015-09-30 14:35:18 +02:00
Jan Steemann
6405c82a32
removed global reverse-flag for IndexNode. this flag has to be moved into the separate indexes used by the node
2015-09-30 14:14:41 +02:00
Jan Steemann
89b6329985
Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
2015-09-28 18:13:29 +02:00
Michael Hackstein
cf7b0734b0
Fixed compile error
2015-09-28 13:50:26 +02:00
Michael Hackstein
18f890895f
Fixed executionNode, does compile again
2015-09-28 13:38:40 +02:00
Michael Hackstein
5e0c1900f8
Added more implementation to new IndexNode
2015-09-28 11:53:23 +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
jsteemann
5c0ff48478
cppcheck
2015-09-22 23:40:57 +02:00
Michael Hackstein
1a7f414c16
Merge branch 'devel' of github.com:arangodb/arangodb into JHMH
2015-09-18 12:21:39 +02:00
Frank Celler
c4d1fff729
new traversal
2015-09-18 10:40:28 +02:00
Jan Steemann
fc553f4909
removed iostream includes
2015-09-17 18:46:42 +02:00
CoDEmanX
8aa78dcb7f
Fix some more typos
2015-09-05 17:18:04 +02:00
CoDEmanX
3a9648d78a
More Americanization
2015-09-03 22:25:43 +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
2d8777bc6c
make the optimizer create less plans
2015-07-30 00:07:32 +02:00
Jan Steemann
cdfdec9244
save some overhead when walking plans
2015-07-28 11:44:34 +02:00
Jan Steemann
ead280afe5
added DISTINCT
2015-07-24 13:19:55 +02:00
Willi Goesgens
bd7aa7c305
Remove the global include to iostream; this reduces the compile time by 10%
...
( http://herbsutter.com/2013/08/19/gotw-7a-solution-minimizing-compile-time-dependencies-part-1/ for inspiration)
2015-07-07 12:11:21 +02:00
Jan Steemann
d2fef98c02
renamed internal function
2015-06-03 18:24:24 +02:00
Jan Steemann
3bb5eb1a9d
small optimizations
2015-06-02 23:20:00 +02:00
Jan Steemann
8b8918f72c
added (still disabled) rule fuse-calculations
2015-06-02 21:32:38 +02:00
Jan Steemann
4b67c7a735
several fixes for indexes
2015-05-26 13:35:11 +02:00
Jan Steemann
a9f2769ffa
now compiles and links
2015-05-23 04:31:13 +02:00
Jan Steemann
9c73028541
less copying
2015-05-12 13:36:08 +02:00
Jan Steemann
574d521472
added alternative slice() method for AqlItemBlock
...
this method will copy only the first row from a source block into
a one-row target block. certain registers can be excluded. used to
initialize the registers for a subquery
2015-04-28 22:47:07 +02:00
Jan Steemann
128b29c8d2
cxxified more functions
2015-04-28 09:29:09 +02:00
Jan Steemann
974b656c1b
allow overriding COLLECT method
2015-04-21 14:45:22 +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
Willi Goesgens
98ed57170a
Fix warning about implicit double to size cast.
2015-04-17 10:43:46 +02:00
Jan Steemann
d9add3a493
fixed collect in cluster
2015-04-16 21:10:48 +02:00
Jan Steemann
9f2643acaa
show type of collect method in explain
2015-04-16 16:29:36 +02:00
Jan Steemann
ff6e56d89c
adjusted some tests
2015-04-15 23:45:07 +02:00
Jan Steemann
8926e3f2e2
initial commit
2015-04-15 19:04:21 +02:00
Jan Steemann
8a1677c1dc
safely increment nrRegs
2015-04-14 13:27:48 +02:00
Jan Steemann
013209b9c7
add expressionType to JSON output of CalculationNode
2015-04-03 15:02:17 +02:00
Jan Steemann
5599259075
fixed Visual Studio compile errors
2015-03-26 10:34:38 +01:00
Jan Steemann
a3c0612798
added cluster tests
2015-03-24 14:34:09 +01:00
Jan Steemann
66e2273482
added documentation for UPSERT
2015-03-24 00:44:52 +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
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
ec2b866200
Merge branch 'devel' of https://github.com/arangodb/arangodb into sparse-indexes
...
Conflicts:
js/apps/system/aardvark/frontend/js/templates/documentsView.ejs
2015-02-11 17:53:23 +01:00
Jan Steemann
c04064dcf2
cast variable
2015-02-11 13:51:01 +01:00
Jan Steemann
003d7e9112
sparse indexes, initial commit, untested
2015-02-07 03:07:41 +01:00
Jan Steemann
e84a5e8eb3
use indexes for sorting in more cases
2015-02-05 00:10:12 +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
875a695b22
selectivity estimates
2015-02-02 20:14:36 +01:00
Jan Steemann
4142169526
fixed spurious errors when accessing a local collection from a cluster DB server
...
Conflicts:
arangod/Aql/Collection.cpp
arangod/Aql/ExecutionBlock.cpp
arangod/Aql/Index.h
2015-01-29 13:06:01 +01:00
Jan Steemann
7af624e2f0
selectivty, try 0
2015-01-27 09:34:04 +01:00
Jan Steemann
c49986d0e8
preparation for conditions
2015-01-25 10:40:13 +01:00
Jan Steemann
844582865f
more accurate subquery cost estimation
2015-01-24 16:47:09 +01:00
Jan Steemann
a5ff6aa05e
more accurate cost estimation for EnumerateListNode
...
fixed typos
2015-01-22 19:35:21 +01:00
Jan Steemann
1003e52cf7
some cleanup
2015-01-18 16:41:48 +01:00
Jan Steemann
2d0a37d826
automatically create _keys in DistributeNode on insert
2015-01-12 10:33:05 +01:00
Jan Steemann
0aa4ac137a
fixed compile warning
2015-01-08 17:22:47 +01:00
Jan Steemann
f2590881f1
return old or new values in data-modification operations
2015-01-08 16:35:54 +01:00
Jan Steemann
064d066462
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
2015-01-07 17:41:09 +01:00
Jan Steemann
9cb3feefc6
propertly cast
2015-01-07 17:40:58 +01:00
Willi Goesgens
e2f206fd2c
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
...
Conflicts:
arangod/Aql/grammar.cpp
2015-01-07 15:50:44 +01:00
Willi Goesgens
f905123802
Implement REMOVE/INSERT/UPDATE/REPLACE return the changed values
2015-01-07 15:48:13 +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
19d2d6668f
added random iteration for collections
2014-12-19 18:01:13 +01:00
Jan Steemann
20e7fe7a7a
the great rename: array => object, list => array
2014-12-18 21:07:06 +01:00
Jan Steemann
dd60e53ce3
added more collect special cases
2014-12-16 22:52:33 +01:00
Willi Goesgens
1c4a72b106
The Big V8 upgrade Merge.
2014-12-15 17:30:56 +01:00
Jan Steemann
f4d7a57c19
changed `COLLECT...INTO x COUNT` to `COLLECT...WITH COUNT INTO x`
...
allow executing subqueries without double brackets
jslint
2014-12-12 23:02:24 +01:00
Jan Steemann
8f6193faa2
added optional COUNT clause for AQL COLLECT
2014-12-12 17:18:04 +01:00
Jan Steemann
7e161b88ce
issue #1131 : added KEEP for `COLLECT...INTO`
2014-12-03 17:44:10 +01:00
Max Neunhoeffer
a76e22f03a
Only put non-toplevel vars into the INTO variable in a COLLECT.
...
This restores the behaviour of 2.2.
2014-11-28 13:05:15 +01:00
Max Neunhoeffer
085440d691
Fix compilation of new estimation function.
2014-11-24 09:39:05 +01:00
Max Neunhoeffer
16b69e8fd3
First version of fix for LIMIT cost estimation.
2014-11-23 21:53:25 +01:00
Max Neunhoeffer
7161a6b848
Reengineer cost estimation completely.
...
One test failing in single-server-AQL.
Cluster not yet tested.
2014-11-14 18:58:08 -05:00
Jan Steemann
bf30927913
removed canThrow tag for various built-in functions
2014-11-05 14:40:00 +01:00
Jan Steemann
025d73ae03
re-added support for fullCount
2014-11-01 15:20:05 +01:00
Max Neunhoeffer
ecb7317461
Remove enterSubQueryFirst.
2014-10-29 11:37:06 +01:00
Jan Steemann
8bb213e7ba
sort and cache list expression values
...
emplace
fixed wrong assertion
2014-10-29 01:02:20 +01:00
Jan Steemann
529bf386d7
fixed some API errors
2014-10-28 11:30:49 +01:00
Jan Steemann
13d240384f
less namespace pollution
2014-10-28 00:24:37 +01:00
Jan Steemann
b5c222b9b8
determine whether calculations may run on a DB server
2014-10-27 12:04:06 +01:00
Jan Steemann
bcf23e2acf
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
2014-10-21 13:46:04 +02:00
Jan Steemann
97a4355c4e
fixed tests
2014-10-21 13:45:46 +02:00
Willi Goesgens
7190475616
While cloning respect optionality of variables.
2014-10-21 13:01:38 +02:00
Jan Steemann
c93c952c05
fixed from/to-handling in cluster
2014-10-20 12:32:08 +02:00
Max Neunhoeffer
6eb2073336
Rename VarOverview into RegisterPlan, because that is what it is.
2014-10-20 09:14:01 +02:00
Max Neunhoeffer
db7b23bdb8
Fix cloning of VarOverview.
2014-10-20 09:04:32 +02:00
Willi Goesgens
7f387d9ac8
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
2014-10-17 14:16:19 +02:00
Willi Goesgens
1a80e19702
Implement the option to enter Subqueries first in the ExecutionBlock Walker too
...
(as in #d2a15253b0805ce2624eac4a44bb66b15c34a21e for the ExecutionNode)
2014-10-17 13:36:40 +02:00
James
32f4216005
updating distribute-in-cluster opt rule
2014-10-17 10:22:26 +01:00
Willi Goesgens
93ff2652e1
Walker: add possibility to enter Subqueries on the way in
...
NodeClone: don't clone the subquery reference list, we don't need them.
2014-10-15 14:59:06 +02:00
James
9f942d0ce3
finished first version of DistributeBlock/Node.
2014-10-15 10:53:09 +01:00
James
60e85ccc7e
proper toJsonHelper method for DistributeNode.
2014-10-14 09:21:40 +01:00
Willi Goesgens
3a7a03a51f
Don't add intermediate calculationnodes for LET-statements to forward the results of subqueries. Instead adjust the outvariable of the subquerynode.
2014-10-10 17:00:49 +02:00
Jan Steemann
6cdaaa1b85
fixes for Visual Studio
2014-10-09 10:45:31 +02:00
Jan Steemann
4ff58364f1
fixed cloning of plans
2014-10-07 12:00:37 +02:00
Jan Steemann
0f83d8132f
fixed some transaction threading errors
2014-10-06 18:39:01 +02:00
Willi Goesgens
7dac9d8cc7
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
2014-10-06 14:16:39 +02:00
Willi Goesgens
48c5ff938e
If we clone an ExecutionNode for the same AST we also have to copy the evaluation members, but we don't need a deep-copy.
2014-10-06 14:15:41 +02:00
James
95fd279a52
distribution node/block declarations etc.
2014-10-06 12:57:09 +01:00
Willi Goesgens
287b6dfb37
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
2014-10-06 11:55:27 +02:00
Willi Goesgens
c01e31c404
when de-serializing nodes don't create new variables, but look up the ones we already have.
2014-10-06 11:55:11 +02:00
Jan Steemann
5959a5e6da
fixed segfaults during node cloning
2014-10-06 10:31:15 +02:00
Willi Goesgens
e1efab6fb5
Fix cloning to other ASTs - dereference pointers to IDs and look up the items on the new lists
2014-10-02 18:41:13 +02:00
Jan Steemann
573d837561
off-by-one fix
2014-10-02 17:06:12 +02:00
Willi Goesgens
f63e90e08b
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
2014-10-02 10:41:12 +02:00
Willi Goesgens
bc627dda7b
Also copy the varoverview to the clone.
2014-10-02 10:40:09 +02:00
Max Neunhoeffer
25d588b858
Set _varUsageValid flag in Json constructor.
2014-10-02 09:28:00 +02:00
Max Neunhoeffer
e043deb13b
Rename StaticAnalysisDebugger into RegisterPlanningDebugger.
2014-10-02 00:13:49 +02:00
Max Neunhoeffer
be07d39457
Rename staticAnalysis -> planRegisters.
2014-10-02 00:11:15 +02:00
Jan Steemann
5b0b1f0af5
indenting
2014-10-01 19:06:29 +02:00
Jan Steemann
f2c115fa25
do not crash when using an index
2014-10-01 16:16:38 +02:00
Jan Steemann
d381031972
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
2014-10-01 15:35:26 +02:00
Jan Steemann
0d9cdfc87c
struct Index
2014-10-01 15:35:16 +02:00
Willi Goesgens
6df55bcb0a
Don't reuse "empty" json objects, they are undefined after first use.
2014-10-01 15:00:02 +02:00
Jan Steemann
49237ef55a
fixed some cluster internal communication
2014-10-01 14:06:00 +02:00
Willi Goesgens
eb2f815d26
Add json de/serialization of new ExecutionNode members.
2014-10-01 09:59:50 +02:00
Max Neunhoeffer
8bffb3daa3
Finish transplantation.
2014-09-30 23:20:51 +02:00
Max Neunhoeffer
5dbcac8efe
Start transplantation of _varOverview to ExecutionNodes.
2014-09-30 16:44:01 +02:00
Willi Goesgens
3f566f6289
Enable node* clone functions to produce deep copies which live on a specified query.
2014-09-30 14:09:12 +02:00
Jan Steemann
3a2e13b910
pass queryId to remote servers
2014-09-29 17:35:10 +02:00
Jan Steemann
b31987fea7
pass data to RemoteNode
2014-09-29 16:36:52 +02:00
Jan Steemann
3ac25ad56f
fixed some issues with remote queries
2014-09-29 12:14:03 +02:00
Jan Steemann
9e47f3ca27
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
...
Conflicts:
arangod/Aql/ExecutionNode.h
2014-09-26 20:23:52 +02:00
Jan Steemann
c3ce45e0dd
added block instanciation for coordinator, v0.0.0
2014-09-26 20:17:42 +02:00
Willi Goesgens
d003eecac1
We need to pass a reference since we want to return values onto this; and return const references to not duplicate the memory.
2014-09-26 15:22:41 +02:00
Jan Steemann
578d22c95b
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
2014-09-26 13:58:16 +02:00
Jan Steemann
f462c5f620
add database and collection info to gather nodes
2014-09-26 13:58:02 +02:00
Willi Goesgens
14eda3e348
- create type for SortElements to be used instead of stacked templates
...
- abstract json parsing of SortElemnts into an own function
- implement deserialisation of Scatter/GatherNode
2014-09-26 13:42:26 +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
Jan Steemann
5c552d4137
optimizer rule for scatter / gather
2014-09-17 17:29:36 +02:00