1
0
Fork 0
Commit Graph

1151 Commits

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