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>
|
template <class Executor>
|
||||||
std::pair<ExecutionState, size_t> ExecutionBlockImpl<Executor>::skipSome(size_t const atMost,
|
std::pair<ExecutionState, size_t> ExecutionBlockImpl<Executor>::skipSome(size_t const atMost,
|
||||||
size_t const subqueryDepth) {
|
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);
|
traceSkipSomeBegin(atMost);
|
||||||
auto state = ExecutionState::HASMORE;
|
auto state = ExecutionState::HASMORE;
|
||||||
|
|
||||||
|
|
|
@ -187,6 +187,12 @@ class ExecutionBlockImpl final : public ExecutionBlock {
|
||||||
*/
|
*/
|
||||||
std::pair<ExecutionState, SharedAqlItemBlockPtr> getSomeWithoutTrace(size_t atMost);
|
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.
|
* @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.
|
// We might write less on all shadow rows in input, right now we do not figure this out yes.
|
||||||
return {state, expected * 2};
|
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> expectedNumberOfRows(size_t atMost) const;
|
||||||
|
|
||||||
|
std::pair<ExecutionState, size_t> skipRowsWithDepth(size_t const atMost,
|
||||||
|
size_t const subqueryDepth);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Fetcher to get data.
|
// Fetcher to get data.
|
||||||
Fetcher& _fetcher;
|
Fetcher& _fetcher;
|
||||||
|
|
Loading…
Reference in New Issue