OffsetsStep.cpp 819 字节
Newer Older
N
Nikolai Kochetov 已提交
1 2 3 4 5 6 7
#include <Processors/QueryPlan/OffsetsStep.h>
#include <Processors/OffsetTransform.h>
#include <Processors/QueryPipeline.h>

namespace DB
{

8 9
static ITransformingStep::DataStreamTraits getTraits()
{
N
Nikolai Kochetov 已提交
10 11
    return ITransformingStep::DataStreamTraits
    {
12 13 14
            .preserves_distinct_columns = true,
            .returns_single_stream = false,
            .preserves_number_of_streams = true,
15 16 17
    };
}

N
Nikolai Kochetov 已提交
18
OffsetsStep::OffsetsStep(const DataStream & input_stream_, size_t offset_)
19
    : ITransformingStep(input_stream_, input_stream_.header, getTraits())
N
Nikolai Kochetov 已提交
20
    , offset(offset_)
N
Nikolai Kochetov 已提交
21 22 23 24 25
{
}

void OffsetsStep::transformPipeline(QueryPipeline & pipeline)
{
26 27
    auto transform = std::make_shared<OffsetTransform>(
            pipeline.getHeader(), offset, pipeline.getNumStreams());
N
Nikolai Kochetov 已提交
28

29
    pipeline.addPipe({std::move(transform)});
N
Nikolai Kochetov 已提交
30 31 32
}

}