mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-09 10:00:54 +00:00
29 lines
610 B
C++
29 lines
610 B
C++
|
#pragma once
|
||
|
#include <DataStreams/IBlockInputStream.h>
|
||
|
#include <Processors/IProcessor.h>
|
||
|
|
||
|
namespace DB
|
||
|
{
|
||
|
|
||
|
class TreeExecutor : public IBlockInputStream
|
||
|
{
|
||
|
public:
|
||
|
explicit TreeExecutor(Processors processors_) : processors(std::move(processors_)) { init(); }
|
||
|
|
||
|
String getName() const override { return root->getName(); }
|
||
|
Block getHeader() const override { return root->getOutputs().front().getHeader(); }
|
||
|
|
||
|
protected:
|
||
|
Block readImpl() override;
|
||
|
|
||
|
private:
|
||
|
Processors processors;
|
||
|
IProcessor * root = nullptr;
|
||
|
std::unique_ptr<InputPort> port;
|
||
|
|
||
|
void init();
|
||
|
void execute();
|
||
|
};
|
||
|
|
||
|
}
|