#pragma once #include #include namespace DB { /// Executes OFFSET (without LIMIT). See OffsetTransform. class OffsetStep : public ITransformingStep { public: OffsetStep(const DataStream & input_stream_, size_t offset_); String getName() const override { return "Offset"; } void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) override; void describeActions(JSONBuilder::JSONMap & map) const override; void describeActions(FormatSettings & settings) const override; private: void updateOutputStream() override { output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); } size_t offset; }; }