AddingDefaultBlockOutputStream.cpp 1002 字节
Newer Older
1
#include <DataStreams/AddingDefaultBlockOutputStream.h>
2
#include <Interpreters/addMissingDefaults.h>
3
#include <Interpreters/ExpressionActions.h>
4

5

6 7
namespace DB
{
8

9 10 11 12 13 14 15
AddingDefaultBlockOutputStream::AddingDefaultBlockOutputStream(
    const BlockOutputStreamPtr & output_,
    const Block & header_,
    const ColumnsDescription & columns_,
    const Context & context_)
    : output(output_), header(header_)
{
16
    auto dag = addMissingDefaults(header_, output->getHeader().getNamesAndTypesList(), columns_, context_);
N
Nikolai Kochetov 已提交
17
    adding_defaults_actions = std::make_shared<ExpressionActions>(std::move(dag));
18 19
}

20
void AddingDefaultBlockOutputStream::write(const Block & block)
21
{
22
    auto copy = block;
N
Nikolai Kochetov 已提交
23
    adding_defaults_actions->execute(copy);
24
    output->write(copy);
25 26 27 28
}

void AddingDefaultBlockOutputStream::flush()
{
29
    output->flush();
30 31 32 33
}

void AddingDefaultBlockOutputStream::writePrefix()
{
34
    output->writePrefix();
35 36 37 38
}

void AddingDefaultBlockOutputStream::writeSuffix()
{
39
    output->writeSuffix();
40
}
41

42
}