aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/clickhouse/src/Processors/Transforms/ArrayJoinTransform.h
blob: 0d81d5e458cb21b7b16e9046123bec1ba3839c54 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once
#include <Processors/ISimpleTransform.h>

namespace DB
{

class ArrayJoinAction;
using ArrayJoinActionPtr = std::shared_ptr<ArrayJoinAction>;

/// Execute ARRAY JOIN
class ArrayJoinTransform : public ISimpleTransform
{
public:
    ArrayJoinTransform(
            const Block & header_,
            ArrayJoinActionPtr array_join_,
            bool on_totals_ = false);

    String getName() const override { return "ArrayJoinTransform"; }

    static Block transformHeader(Block header, const ArrayJoinActionPtr & array_join);

protected:
    void transform(Chunk & chunk) override;

private:
    ArrayJoinActionPtr array_join;
};

}