ClickHouse/src/Processors/QueryPlan/ExpressionStep.h

38 lines
1.0 KiB
C++
Raw Normal View History

2020-06-16 09:53:59 +00:00
#pragma once
2020-06-16 09:42:25 +00:00
#include <Processors/QueryPlan/ITransformingStep.h>
namespace DB
{
class ExpressionActions;
using ExpressionActionsPtr = std::shared_ptr<ExpressionActions>;
class ExpressionStep : public ITransformingStep
{
public:
2020-06-16 12:02:10 +00:00
explicit ExpressionStep(const DataStream & input_stream_, ExpressionActionsPtr expression_, bool default_totals_ = false);
2020-06-16 09:42:25 +00:00
String getName() const override { return "Expression"; }
void transformPipeline(QueryPipeline & pipeline) override;
private:
ExpressionActionsPtr expression;
2020-06-16 12:02:10 +00:00
bool default_totals; /// See ExpressionTransform
};
/// TODO: add separate step for join.
class InflatingExpressionStep : public ITransformingStep
{
public:
explicit InflatingExpressionStep(const DataStream & input_stream_, ExpressionActionsPtr expression_, bool default_totals_ = false);
String getName() const override { return "Expression"; }
void transformPipeline(QueryPipeline & pipeline) override;
private:
ExpressionActionsPtr expression;
bool default_totals; /// See ExpressionTransform
2020-06-16 09:42:25 +00:00
};
}