mirror of https://gitee.com/bigwinds/arangodb
Added (stub) implementation for skipSome at the subquery end/(start) executors
This commit is contained in:
parent
ae373ca6ee
commit
079e8071b5
|
@ -393,6 +393,24 @@ static SkipVariants constexpr skipType() {
|
|||
template <class Executor>
|
||||
std::pair<ExecutionState, size_t> ExecutionBlockImpl<Executor>::skipSome(size_t const atMost,
|
||||
size_t const subqueryDepth) {
|
||||
return doSkipSome(atMost, subqueryDepth);
|
||||
}
|
||||
|
||||
template <>
|
||||
std::pair<ExecutionState, size_t> ExecutionBlockImpl<SubqueryEndExecutor>::skipSome(
|
||||
size_t const atMost, size_t const subqueryDepth) {
|
||||
return doSkipSome(atMost, subqueryDepth+1);
|
||||
}
|
||||
|
||||
template <>
|
||||
std::pair<ExecutionState, size_t> ExecutionBlockImpl<SubqueryStartExecutor>::skipSome(
|
||||
size_t const atMost, size_t const subqueryDepth) {
|
||||
return _executor.skipRowsWithDepth(atMost, subqueryDepth);
|
||||
}
|
||||
|
||||
template <class Executor>
|
||||
std::pair<ExecutionState, size_t> ExecutionBlockImpl<Executor>::doSkipSome(
|
||||
size_t const atMost, size_t const subqueryDepth) {
|
||||
traceSkipSomeBegin(atMost);
|
||||
auto state = ExecutionState::HASMORE;
|
||||
|
||||
|
|
|
@ -187,6 +187,12 @@ class ExecutionBlockImpl final : public ExecutionBlock {
|
|||
*/
|
||||
std::pair<ExecutionState, SharedAqlItemBlockPtr> getSomeWithoutTrace(size_t atMost);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Actual skipSome implementation.
|
||||
*/
|
||||
std::pair<ExecutionState, size_t> doSkipSome(size_t atMost, size_t subqueryDepth);
|
||||
|
||||
/**
|
||||
* @brief Inner skipSome() part, without the tracing calls.
|
||||
*/
|
||||
|
|
|
@ -87,3 +87,9 @@ std::pair<ExecutionState, size_t> SubqueryStartExecutor::expectedNumberOfRows(si
|
|||
// We might write less on all shadow rows in input, right now we do not figure this out yes.
|
||||
return {state, expected * 2};
|
||||
}
|
||||
|
||||
std::pair<ExecutionState, size_t> SubqueryStartExecutor::skipRowsWithDepth(
|
||||
size_t const atMost, size_t const subqueryDepth) {
|
||||
TRI_ASSERT(false);
|
||||
THROW_ARANGO_EXCEPTION(TRI_ERROR_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
|
|
@ -68,6 +68,9 @@ class SubqueryStartExecutor {
|
|||
*/
|
||||
std::pair<ExecutionState, size_t> expectedNumberOfRows(size_t atMost) const;
|
||||
|
||||
std::pair<ExecutionState, size_t> skipRowsWithDepth(size_t const atMost,
|
||||
size_t const subqueryDepth);
|
||||
|
||||
private:
|
||||
// Fetcher to get data.
|
||||
Fetcher& _fetcher;
|
||||
|
|
Loading…
Reference in New Issue