* Replace template <bool blockPassthrough>
by template <BlockPassthrough blockPassthrough> where BlockPassthrough is an
enum class.
This is mainly for better readability and for some type safety.
* Fixup some implicit conversions to bool
* Added first draft of ShadowRow Interface
* Refactored RegisterPlan and pulled it out of the ExecutionNode
* AqlItemBlock now has an additional hidden register to store subquery depth infromation. Right now no shadow rows are created, however thy could now make use of this situation
* Added API and test to insert new shadow rows into an OutputRow.
* Extrated test helper function
* Added API and tests to consume ShadowRows. Interface is there and compiles with templates, we might need to implement further underlying functions later on as we make progress on ShadowRows, it is only implemented in the minimal way (intentionally)
* Added a test for nested ShadowRows and adapted OutputRow accordingly.
* Added additional memory include, seems to be required under GCC not udner CLANG
* it actually helps to save fies before commiting them...
* Fixed serialization/Deserialization of AqlItemBlock to contain the hidden subquery register now
* Added a c++ test for AqlItemBlock. It just covers the basics thus far and needs to be improved.
* Fixed toVPack of AqlInputRow for subqueries. Also added serialization / deserialization tests for AqlItemRow
* Added a c++ test for inputAqlItem row serialization => AqlItemBlock deserialization
* Attempt to fix :windows: compile warning
* Added a serialization format to be backwards compatible to 3.5 whenever AQL item blocks need to be send over to remote nodes.
* Added more tests for serialization of shadow rows, and fixed a bug revealed by this
* Apply suggestions from code review
Thank you for review!
Co-Authored-By: Tobias Gödderz <tobias@arangodb.com>
* Review comments. Thanks for spotting
* Fixed hidden merge conflicts
* Attempt to explain windows on how one can actually cast numbers into other number types...
* Update arangod/Aql/AqlItemBlockSerializationFormat.h
Co-Authored-By: Tobias Gödderz <tobias@arangodb.com>
* Some refactoring to implement helper methods iff necessary
* Updated comments
* Added static assertions
* Re-enabled check for maintainer mode
* Allow pass-through for LimitExecutor. This is not yet working with fullCount correctly!
* Get fullCount before returning the last row
* Adapted fullCount tests: LimitExecutor doesn't lie about the state of the last row anymore
* Use correct row
* Handle LimitExecutor-stats during fetchBlockForPassthrough
* Fixed LimitExecutorTest
* Removed _stats member
* Added more catch tests
* Bugfix for fullStats
* Removed an erroneous assertion
* Implemented LimitExecutor::skipRows
* Avoid name clash of class enum member to please MSVC
* Test MSVC
* Revert "Test MSVC"
This reverts commit d8325d95318bb83b79c8c4cc9f886d36e484c870.
* CREATE_NEW seems to be taken, too. Next try for MSVC
* Built VPack to ItemBlock helpers, and made SingleRowFetcherHelper more general
* Removed ostream operator because MSVC doesn't like it...
* Implemented SingleRowFetcherHelper::fetchBlockForPassthrough, plus a small framework to test executors
* Removed erroneous include
* Moved code in separate files
* Began writing the extended schema of runExecutor
* Added output operator for ExecutorCall
* Fixed removeWaiting
* Fixed expected output
* Added skipRows to runExecutor
* Added two tests
* Allow empty blocks
* Added two more tests
* Added another test
* Built two different parametrized classes for LimitExecutor
* Some cleanup
* Even more tests
* Fixed a bug found by the new tests
* Fix compile error on windows
* Use native matrix representation in tests
* Updated some comments
* Removed useless parameters of buildCallback
* Renamed produceRow to produceRows and adapted a comment
* Renamed BlockFetcher to DependencyProxy
* Applied git-clang-format
* Fixed maybe-uninitialized warnings by removing unnecessary boost:optionals
* Fixed use after free
* Update arangod/Aql/SingleRemoteModificationExecutor.cpp
* Fixed another autocast number=>bool thanks c !
* Fixed wrong usage of almost identically named variables