1
0
Fork 0
Commit Graph

305 Commits

Author SHA1 Message Date
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