Michael Hackstein
f23259b2bb
Added CXX implementation of BINARY_OPERATOR_DIV
2015-11-03 10:19:30 +01:00
Michael Hackstein
ceec76f13b
Added CXX implementation for BINARY_OPERATOR_TIMES
2015-11-03 10:19:29 +01:00
Michael Hackstein
344f70fee2
Added CXX implementation for BINARY_MINUS
2015-11-03 10:19:29 +01:00
Michael Hackstein
11606c1f55
Added a CXX implementation of BINARY_PLUS.
2015-11-03 10:19:26 +01:00
Michael Hackstein
4a0bd0f72c
Refactored executeSimpleExpression. It now is a simple switch case with different private function calls. Instead of a 500 lines long function.
2015-10-30 15:53:49 +01:00
Michael Hackstein
2a32f71fe1
Started refactoring executeSimpleExpression.
2015-10-30 14:55:38 +01:00
Jan Steemann
a2731a6121
blind commit
2015-10-02 17:02:02 +02:00
Michael Hackstein
6a11ad28ee
Adapted all indices to the new planned interface so they tell us if they can serve for a condition and present their costs
2015-09-25 10:40:04 +02:00
Jan Steemann
97d67e4399
use binary-safe string representations
2015-08-20 01:46:20 +02:00
Jan Steemann
5dab23a3b7
CXX implementation of AQL `LIKE`
2015-08-04 10:30:18 +02:00
Jan Steemann
14fe919b5b
constify
2015-07-30 00:07:50 +02:00
Jan Steemann
2d8777bc6c
make the optimizer create less plans
2015-07-30 00:07:32 +02:00
Jan Steemann
6d7ccd7699
move shaper to cxx
2015-07-28 17:38:31 +02:00
Jan Steemann
cdfdec9244
save some overhead when walking plans
2015-07-28 11:44:34 +02:00
Jan Steemann
aad327714c
handle AstNodes of type collection
2015-07-22 11:59:45 +02:00
Jan Steemann
5916677a0b
fixed leak
2015-06-23 22:45:57 +02:00
Jan Steemann
7313b19431
implemented FILTER, LIMIT and multi-star features
2015-06-20 14:21:58 +02:00
Jan Steemann
64089eea75
partial implementation
2015-06-20 11:21:57 +02:00
Jan Steemann
aff1f6a6a0
fixed leaks
2015-06-18 19:30:29 +02:00
Jan Steemann
86f1a02e18
Merge branch 'aql-argv-optimization' of https://github.com/arangodb/arangodb into devel
2015-06-18 17:12:47 +02:00
Jan Steemann
dec79dd051
pass function arguments by reference
2015-06-16 18:01:45 +02:00
Jan Steemann
d6f3436cc9
added tests
2015-06-16 15:13:53 +02:00
Jan Steemann
3e99e76b4f
fixed range access
2015-06-13 02:27:17 +02:00
Jan Steemann
c5d099a1c5
fixed array range accesses
2015-06-12 23:45:08 +02:00
Jan Steemann
1174cfd05c
added tests
2015-06-12 18:29:54 +02:00
Jan Steemann
e7ff3f2a19
Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-parser-simplification
2015-06-12 12:04:41 +02:00
Jan Steemann
1a18fb0282
factor out huge array/object literals when calling V8-based AQL functions
2015-06-12 11:50:22 +02:00
Jan Steemann
3985498fc3
added [x..y] array access, added [**] operator
2015-06-11 00:09:41 +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
16746ae026
small optimizations for expression
2015-06-02 09:18:13 +02:00
Jan Steemann
e6684f9d2f
small optimizations for expressions
2015-06-02 09:17:50 +02:00
Jan Steemann
9c73028541
less copying
2015-05-12 13:36:08 +02:00
Jan Steemann
95b8a0c76d
use AttributeAccessor for more cases
2015-05-08 15:56:07 +02:00
Jan Steemann
4a8146ed02
fixed some potential leaks
2015-05-05 00:33:12 +02:00
Jan Steemann
ad5350a9c0
better encapsulation of AqlItemBlock's values
2015-04-23 13:45:49 +02:00
Jan Steemann
224b33cc75
moved UNSET() and KEEP() to cxx implementation
2015-04-22 13:21:05 +02:00
Jan Steemann
3bb3e15d8e
fixed getAttributeAccess()
2015-04-20 14:30:06 +02:00
Jan Steemann
d20c104d0c
specialized attribute accessor for AQL
2015-04-20 13:26:04 +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
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
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
cef1e7bffe
a bit less copying
2015-02-04 00:23:17 +01:00
Frank Celler
94884d3f5a
silenced warning
2015-01-29 15:19:28 +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
fd3e123253
optimizations for AST node flagging and V8 object creation
2015-01-22 19:35:20 +01:00
Jan Steemann
20e7fe7a7a
the great rename: array => object, list => array
2014-12-18 21:07:06 +01:00
Willi Goesgens
1c4a72b106
The Big V8 upgrade Merge.
2014-12-15 17:30:56 +01:00
Jan Steemann
6185943bc5
prevent double-free of variable bounds
2014-12-03 17:45:46 +01:00
Jan Steemann
065a5ecef0
issue #1100 : HAS() fails on doc[attribute_name]
2014-11-17 11:38:57 +01:00
Jan Steemann
0d01e6c7b6
less verbose error messages
2014-11-07 11:16:25 +01:00
Jan Steemann
b0de1bb226
leaner and meaner error messages
2014-11-07 10:53:00 +01:00
Jan Steemann
83252851e6
report warnings in queries
2014-10-30 17:33:15 +01:00
Jan Steemann
0903c1b9b6
use more precomputed values in expressions
2014-10-29 21:41:00 +01:00
Jan Steemann
464c0751d9
removed TODOs
2014-10-29 13:19:13 +01:00
Jan Steemann
ecc6089cc8
removed TODO
2014-10-29 13:06:54 +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
2e9100619a
a bit less copying
2014-10-28 18:10:23 +01:00
Jan Steemann
b5c222b9b8
determine whether calculations may run on a DB server
2014-10-27 12:04:06 +01:00
Jan Steemann
0f2cd7211b
fixed v8 crash
2014-10-24 23:30:07 +02:00
Jan Steemann
50e8fed964
more handlescopes
2014-10-24 17:29:22 +02:00
Jan Steemann
6dfe652d56
cleanup v8 expressions in coordinator, too
2014-10-23 22:22:15 +02:00
Jan Steemann
8583dc08ca
fix V8 segfault
2014-10-23 14:03:50 +02:00
Jan Steemann
ee614d6ebd
v8 context handling
2014-10-17 15:25:06 +02:00
Jan Steemann
912a8162fb
some renaming
2014-10-16 17:23:50 +02:00
Jan Steemann
70c59a61fd
removed macro
2014-10-16 16:28:18 +02:00
Jan Steemann
64fd7ea4b3
conversions
2014-10-16 10:20:04 +02:00
Jan Steemann
6895ba9e27
fixed tests
2014-10-14 13:20:10 +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
f3186fa065
cppcheck
2014-09-29 17:02:40 +02:00
Jan Steemann
ae5f454bfc
added unary operator
2014-09-19 17:46:36 +02:00
Jan Steemann
92e46b8191
use SimpleExpression for more types of expressions
2014-09-19 17:40:47 +02:00
Jan Steemann
9a6dfa1db2
execute several types of expressions in C++
2014-09-19 15:21:01 +02:00
Jan Steemann
1d87957b40
reserve enough memory for simple lists & arrays
2014-09-19 12:44:46 +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
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
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
76c1da4e9c
added test for remove-redundant-calculations
2014-09-12 16:58:01 +02:00
Jan Steemann
f57312baf0
pass AST to expression
2014-09-12 15:40:17 +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
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
Jan Steemann
71600f89b7
use RANGE AqlValue type
2014-09-11 11:56:40 +02:00
Max Neunhoeffer
b88bceda00
Fix memleaks.
2014-09-05 18:20:48 +02:00
Max Neunhoeffer
6f22f5529a
Fix memory leak, AqlValues must be destroyed explicitly.
2014-09-02 15:19:21 +02:00
Jan Steemann
a3d2d0e3f1
renamed file
2014-08-29 17:09:07 +02:00
Jan Steemann
694d64da3c
do not optimize away non-deterministic functions
2014-08-28 15:34:06 +02:00
Jan Steemann
2eb38c9657
remove-redundant-sorts, initial
2014-08-28 12:39:28 +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
Willi Goesgens
da6bac560d
SortIndex optimizer: clean up namingschemes, add documentation.
2014-08-27 16:09:25 +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
Jan Steemann
3fe8831a03
fixed optimizer bug due to duplicate variable representation
2014-08-20 14:18:33 +02:00
Jan Steemann
52566a2975
optimizations for list expressions
2014-08-20 11:19:28 +02:00
Jan Steemann
99ce138c12
fixed creation of subqueries from JSON input
2014-08-19 18:51:11 +02:00
Willi Goesgens
1a6487ab14
Json de/serialization
2014-08-19 16:09:37 +02:00
Jan Steemann
631a73d9cb
moved analyzeExpression() call into constructor
2014-08-15 13:14:45 +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
655d7759bf
added canThrow() for Expression
2014-08-14 20:20:59 +02:00
Willi Goesgens
004d9bdbbb
Implement Simple Expression evaluation for Arrays.
2014-08-13 18:28:22 +02:00
Jan Steemann
8f9591ca1e
properly stringify _from and _to attributes using CollectionNameResolver
2014-08-13 15:59:56 +02:00
Jan Steemann
ea418088c5
fixed simple expressions
2014-08-13 15:39:56 +02:00
Jan Steemann
69f99324f2
added simple expressions
2014-08-13 14:22:14 +02:00
Jan Steemann
562054134e
prevent double-free
2014-08-11 15:34:11 +02:00
Jan Steemann
24f1f979d0
fixed jsonification of values
2014-08-11 14:54:14 +02:00
Jan Steemann
af1ecf44a4
GRAPH_TRAVERSAL_TREE
2014-08-11 14:48:58 +02:00
Jan Steemann
1b14aa3779
moved AqlValue to its own file
2014-08-08 19:46:20 +02:00
Max Neunhoeffer
96d8dcc054
Major cleanup, not yet working.
2014-08-05 12:29:36 +02:00
Jan Steemann
888e3ff7e7
unified signature
2014-08-01 15:00:12 +02:00
Jan Steemann
0d7ca46b45
added variables() method
2014-08-01 14:37:29 +02:00
Jan Steemann
91ac7ab74a
Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
...
Conflicts:
arangod/Aql/Types.h
2014-07-31 17:18:23 +02:00
Jan Steemann
d240314cfe
code generation for V8 expressions
2014-07-31 17:13:38 +02:00
Jan Steemann
d15771854d
pass executor to expression
2014-07-31 15:20:47 +02:00
Jan Steemann
65386d8529
added class Expression
2014-07-31 15:12:12 +02:00