1
0
Fork 0
Commit Graph

34 Commits

Author SHA1 Message Date
Markus Pfeiffer 0b9dfb4b9b Subquery Start/End Nodes (#9983)
* Add Start/End subquery node skeleton

* Added a test query that triggers complex interna in the future and needs to proof that our work is side-effect free.

* Add template function to statically assert size of type

* Add Start/End subquery node skeleton

* Add Start/End subquery node creation to ExecutionNode

* Cleanup SubqueryEndNode

* Add test file

* Add isEqualTo to ExecutionNode

* Subquery nodes cleanup

* Update ExecutionNode tests

* Updates to testing code

* More updates

* Add optimizer rule

* Fix optimizer rule

* Fix optimizer rule (again)

* Add a public function to get plan from query

* Fix register planning

* Add test for splicing subquery nodes

* add static asserts for sizes of SubqueryStartNode and SubqueryEndNode

* Add comment about statically asserted size

* Fix isEqualTo virtual and override dance.

* Fix isEqualTo, remove static_assert_size

* Remove a TODO; the plan owns the ExecutionNodes

* Only add stealPlan to Query when testing

* Remove another static_assert_size

* Disabled subquery splice rule by default

* temporarily modified test

* Fixed windows compile

* Fixed unused variable warning
2019-09-25 12:35:18 +02:00
Dan Larkin-York 3d0246cb18 Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
Frank Celler ac9f375fb5 big reformat 2018-12-26 00:54:03 +01:00
Frank Celler a5a25754ed Feature/reduce extraction to projection (#2792)
* reduce extractions to projections

* recycle string buffers in SocketTask

* micro optimizations for mmfiles indexes

* added special lookup function for _key

* moved function into the correct file

* speed up key buffer allocations a bit

* added noexcept specifier

* correctly name variable

* explicitly move bounds

* fix and speedup from/toPersistent functions

* reuse string from ManagedDocumentResult for multiple lookups

* use move-assign

* a bit less work for single server

* speedup AQL function HASH

* single fetch optimization

* performance optimization for the case when no documents need to be returned

* make reduce-extraction-to-projection a RocksDB-only optimizer rule

* cppcheck

* try to fix compile error on MacOS

* bug fix for MacOSX

* missing namespace (in Windows compile)
2017-07-14 08:40:29 +02:00
Frank Celler 40d73d5a8b Revert "[WIP] Feature/reduce extraction to projection (#2735)"
This reverts commit 5bfcff30cd.
2017-07-12 12:52:14 +02:00
Jan 5bfcff30cd [WIP] Feature/reduce extraction to projection (#2735)
* reduce extractions to projections

* recycle string buffers in SocketTask

* micro optimizations for mmfiles indexes

* added special lookup function for _key

* moved function into the correct file

* speed up key buffer allocations a bit

* added noexcept specifier

* correctly name variable

* explicitly move bounds

* fix and speedup from/toPersistent functions

* reuse string from ManagedDocumentResult for multiple lookups

* use move-assign

* a bit less work for single server

* speedup AQL function HASH

* single fetch optimization

* performance optimization for the case when no documents need to be returned

* make reduce-extraction-to-projection a RocksDB-only optimizer rule
2017-07-12 11:22:29 +02:00
jsteemann 4a7c9f0f68 simplified bloated comments 2016-04-09 11:27:30 +02:00
jsteemann 279fb105e2 cppcheck 2016-03-09 22:57:49 +01:00
Michael Hackstein a5bc8396a8 Entirely removed JSON from Variable 2016-03-08 13:59:42 +01:00
Michael Hackstein 7c3690c4db AqlQuery now is contructed from VelocyPack builders only. Also variables and Execution Plan is constructed form VelocyPack only. 2016-03-07 19:04:37 +01:00
Michael Hackstein f767636f14 Added a toVelocyPack serialisation to all Aql Nodes and their dependencies. Right now in parallel to toJson. 2016-02-16 00:04:32 +01:00
jsteemann 1ca11411fd added (still disabled) optimizer rule `inline-subqueries` 2016-01-29 00:50:37 +01:00
Jan Steemann 9046e1831b clang-format 2016-01-27 13:43:46 +01:00
jsteemann 431900f17a changed namespace from triagens to arangodb 2016-01-17 00:44:53 +01:00
jsteemann 4a1c10d46c cppcheck 2016-01-14 23:45:59 +01:00
Jan Steemann 687d6133f0 comments reformatting 2016-01-11 09:52:39 +01:00
Jan Steemann 3ad20c0cae auto-generated headers 2016-01-06 18:41:51 +01:00
Jan Steemann a3b026d9d1 removed useless sections from code, unified include guards 2016-01-06 14:15:22 +01:00
Jan Steemann f422576ee0 clang-format 2016-01-05 17:43:24 +01:00
Jan Steemann b28393e458 cleanup 2015-10-20 11:44:01 +02:00
Jan Steemann 37bc5b64ff fixed segfault 2015-10-05 13:49:23 +02:00
Jan Steemann 3985498fc3 added [x..y] array access, added [**] operator 2015-06-11 00:09:41 +02:00
Jan Steemann 912a8162fb some renaming 2014-10-16 17:23:50 +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 ebb7db28d1 removed unused code 2014-09-17 11:25:06 +02:00
Jan Steemann a5c52998e8 remove redundant calculations 2014-09-12 15:10:48 +02:00
Jan Steemann 16f32254a8 remove unused AST optimization code 2014-08-20 12:42:59 +02:00
Willi Goesgens f179c35f02 Follow changes in Replace & UpdateNode - they have inDoc/inKey/out Variable now.
Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2

Conflicts:
	arangod/Aql/ExecutionPlan.cpp
2014-08-19 16:19:38 +02:00
Willi Goesgens 1a6487ab14 Json de/serialization 2014-08-19 16:09:37 +02:00
Jan Steemann e4abcdc843 added optimizer rule 2014-08-19 13:59:05 +02:00
Max Neunhoeffer 8290bc64fb Make iterator [*] internal variables need no register. 2014-08-11 13:47:23 +02:00
Jan Steemann d240314cfe code generation for V8 expressions 2014-07-31 17:13:38 +02:00
Jan Steemann 4b6ab03102 rename variables in JSON 2014-07-31 14:02:17 +02:00
Jan Steemann f3252ac429 moved variable into own file 2014-07-30 09:26:41 +02:00