Jan Steemann
3985498fc3
added [x..y] array access, added [**] operator
2015-06-11 00:09:41 +02:00
Jan Steemann
d99d164c0a
simplified parser
2015-06-10 20:25:25 +02:00
Jan Steemann
8b8918f72c
added (still disabled) rule fuse-calculations
2015-06-02 21:32:38 +02:00
Jan Steemann
64ae7adb93
issue #1341 : Can't use bindvars in UPSERT
2015-05-28 14:28:23 +02:00
Jan Steemann
c88b731acf
save some mallocs for strings in AQL
2015-05-18 23:40:28 +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
a007a867ee
"privatized" TRI_vector_t internals.
...
This allows changing the internals of TRI_vector_t structs in order to make the struct smaller.
On 64 bits, the size of TRI_vector_t is reduced from 48 bytes to 28 bytes.
TRI_json_t does benefit from this, as its biggest component is a TRI_vector_t.
2015-05-05 10:31:02 +02:00
Jan Steemann
ca07b07630
change naming
2015-05-04 16:55:07 +02:00
Jan Steemann
cb0ff510d6
slightly less copying
2015-04-30 16:50:08 +02:00
Jan Steemann
6e14c99835
fixed error message
2015-04-22 14:16:52 +02:00
Jan Steemann
974b656c1b
allow overriding COLLECT method
2015-04-21 14:45:22 +02:00
Jan Steemann
50b531666c
optimization for AQL CONCAT()
...
Conflicts:
arangod/Aql/AqlValue.cpp
arangod/Aql/AqlValue.h
arangod/Aql/Ast.cpp
2015-03-27 17:18:27 +01:00
Jan Steemann
2f58e4ea61
small cleanup
2015-03-25 12:42:44 +01:00
Jan Steemann
66e2273482
added documentation for UPSERT
2015-03-24 00:44:52 +01:00
Jan Steemann
7d5cc17d98
added tests
2015-03-23 22:28:26 +01:00
Jan Steemann
c62c26e088
Merge branch 'devel' of https://github.com/arangodb/arangodb into data-modification
2015-03-23 15:31:41 +01:00
Jan Steemann
e3bf1c709c
upsert blocks
2015-03-23 15:31:07 +01:00
Frank Celler
4c5d57f1b8
merged Exceptions.h and Exception.h
2015-03-23 14:05:19 +01:00
Jan Steemann
6b24da1036
in the middle of refactoring
2015-03-17 09:08:25 +01:00
Jan Steemann
491e755cd8
turn indexed accesses (e.g. a['foo']) into attribute accesses (e.g. a.foo) during AST optimization
...
this qualifies the indexed accesses to be used with an IndexRangeNode later
2015-02-07 16:55:25 +01:00
Jan Steemann
dd74c6ac87
execute read and write operations of different collections in the same AQL query in lockstep, and not sequentially
2015-02-05 18:27:10 +01:00
Jan Steemann
5d9c0e018e
dynamic attribute names in AQL
2015-02-03 22:51:40 +01:00
Jan Steemann
c49986d0e8
preparation for conditions
2015-01-25 10:40:13 +01:00
Jan Steemann
81a74f4c7f
use TRI_AddressVector
2015-01-24 14:03:41 +01:00
Jan Steemann
7db19894ca
do not pass name in TRI_ERROR_ARANGO_ILLEGAL_NAME
2015-01-23 12:38:40 +01:00
Jan Steemann
fd3e123253
optimizations for AST node flagging and V8 object creation
2015-01-22 19:35:20 +01:00
Jan Steemann
bdb50d873e
fixed method comments
2015-01-22 19:35:20 +01:00
Jan Steemann
cba74d0803
fixed memleaks
2015-01-09 18:27:59 +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
62696b6984
prerequisites for further COLLECT optimizations
2015-01-07 09:42:46 +01:00
Jan Steemann
d92057dd03
the great rename: array => object, list => array
2014-12-18 22:33:23 +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
8f6193faa2
added optional COUNT clause for AQL COLLECT
2014-12-12 17:18:04 +01:00
Jan Steemann
399e93c3ff
issue #1155 : allow bind parameter for sort order
...
SORT what @order is now allowed
2014-12-08 13:05:40 +01:00
Jan Steemann
c43bd64222
fixed VS compile error
2014-12-05 15:16:37 +01:00
Jan Steemann
34012395e3
fixed some compile issues
2014-12-05 15:02:08 +01:00
Jan Steemann
7e161b88ce
issue #1131 : added KEEP for `COLLECT...INTO`
2014-12-03 17:44:10 +01:00
Jan Steemann
c69fa0b0dc
fixed invalid optimization, added test cases
2014-11-25 23:18:24 +01:00
James
f797afe0d5
Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into aql-feature-lazy-index
2014-11-13 08:04:25 +00:00
Jan Steemann
7cd1eb5474
more warnings
2014-11-12 14:52:54 +01: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
Jan Steemann
12d326d62b
updated documentation and operators behavior
2014-11-10 18:05:11 +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
Jan Steemann
b0de1bb226
leaner and meaner error messages
2014-11-07 10:53:00 +01:00
Jan Steemann
8e678c50da
mini optimization: share frequently occuring values
2014-11-06 20:14:02 +01:00
Jan Steemann
749a0aa408
fixed cloning of AST nodes
2014-11-01 21:54:02 +01:00
Jan Steemann
83252851e6
report warnings in queries
2014-10-30 17:33:15 +01:00
Jan Steemann
464c0751d9
removed TODOs
2014-10-29 13:19:13 +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
2808e4eee8
cppcheck
2014-10-28 00:35:18 +01:00
Jan Steemann
699517413e
fixed clumsy error handling
2014-10-24 10:29:13 +02:00
Jan Steemann
6dfe652d56
cleanup v8 expressions in coordinator, too
2014-10-23 22:22:15 +02:00
Jan Steemann
42c91307ec
handlescope
2014-10-17 15:56:03 +02:00
Jan Steemann
ee614d6ebd
v8 context handling
2014-10-17 15:25:06 +02:00
Jan Steemann
1f423a5e0d
removed optimization for range node
2014-10-14 13:22:04 +02:00
Jan Steemann
6895ba9e27
fixed tests
2014-10-14 13:20:10 +02:00
Jan Steemann
7be268c07c
changed AQL optimizer to not throw
2014-10-14 10:14:40 +02:00
Willi Goesgens
60dd21802b
Clone the query, move the memory kept in the AST over to the query so all memory is kept in one location.
2014-09-30 10:18:13 +02:00
Jan Steemann
74c9653f6f
fixed range-info equality flag after fusing
2014-09-19 22:07:06 +02:00
Jan Steemann
50e17b8c4f
disabled optimization due to failing tests
2014-09-19 19:30:57 +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
34d2913002
added NOT IN operator, added keywords NOT, AND, OR
2014-09-14 01:34:58 +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
76c1da4e9c
added test for remove-redundant-calculations
2014-09-12 16:58:01 +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
Max Neunhoeffer
31e02e42cb
Instanciate expressions for variable bounds.
...
And various cleanups.
2014-09-11 14:28:38 +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
a3d2d0e3f1
renamed file
2014-08-29 17:09:07 +02:00
Jan Steemann
683fbf4ec4
using emplace
2014-08-23 00:48:39 +02:00
Jan Steemann
0e8b61124e
less verbose AST dumps in AQL_PARSE
2014-08-21 13:08:21 +02:00
Jan Steemann
3fe8831a03
fixed optimizer bug due to duplicate variable representation
2014-08-20 14:18:33 +02:00
Jan Steemann
16f32254a8
remove unused AST optimization code
2014-08-20 12:42:59 +02:00
Jan Steemann
99ce138c12
fixed creation of subqueries from JSON input
2014-08-19 18:51:11 +02:00
Jan Steemann
b010518e9e
implementation of update/replace (update not yet merging old attributes)
2014-08-18 12:34:27 +02:00
Jan Steemann
9348f12f78
implemented insert node
2014-08-15 18:12:33 +02:00
Jan Steemann
9306105447
REMOVE
2014-08-15 12:44:35 +02:00
Jan Steemann
773c29cecf
further work on RemoveNode
2014-08-15 12:20:17 +02:00
Jan Steemann
1ad300cee5
added more node types
2014-08-14 10:23:53 +02:00
Jan Steemann
162681ada4
fixed handling of ranges
2014-08-12 14:00:51 +02:00
Jan Steemann
19e39fb80e
fixed another test
2014-08-12 11:59:09 +02:00
Jan Steemann
0b2b1e83db
fixed handling of bind parameters
2014-08-12 11:52:17 +02:00
Max Neunhoeffer
8290bc64fb
Make iterator [*] internal variables need no register.
2014-08-11 13:47:23 +02:00
Jan Steemann
84ea5931dd
fixed assertion failure
2014-08-11 09:34:43 +02:00
Jan Steemann
61d8998909
aggregate!
2014-08-08 18:56:41 +02:00
Jan Steemann
e8f69490ff
optimize away function calls with const arguments
2014-08-06 17:15:36 +02:00
Jan Steemann
1015404edc
working on AQL function calls and error handling
2014-08-06 16:19:43 +02:00
Jan Steemann
182ab57e8d
transaction
2014-08-04 11:15:53 +02:00
Jan Steemann
0d7ca46b45
added variables() method
2014-08-01 14:37:29 +02:00
Jan Steemann
7ca458e397
more code generation
2014-08-01 09:50:08 +02:00
Jan Steemann
d240314cfe
code generation for V8 expressions
2014-07-31 17:13:38 +02:00
Jan Steemann
3d899f27e8
variable generator
2014-07-31 11:43:01 +02:00
Jan Steemann
2aad264e77
refactoring
2014-07-31 10:38:49 +02:00
Jan Steemann
e203691f0c
started plan generator
2014-07-30 18:04:05 +02:00
Jan Steemann
dc70c6f4d2
renamed class
2014-07-30 13:26:48 +02:00