AddingDefaultBlockOutputStream.cpp 997 字节
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 16 17 18 19 20
AddingDefaultBlockOutputStream::AddingDefaultBlockOutputStream(
    const BlockOutputStreamPtr & output_,
    const Block & header_,
    const Block & output_block_,
    const ColumnsDescription & columns_,
    const Context & context_)
    : output(output_), header(header_)
{
    auto dag = addMissingDefaults(header_, output_block_.getNamesAndTypesList(), columns_, context_);
    actions = std::make_shared<ExpressionActions>(std::move(dag));
}

21
void AddingDefaultBlockOutputStream::write(const Block & block)
22
{
23 24 25
    auto copy = block;
    actions->execute(copy);
    output->write(copy);
26 27 28 29
}

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

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

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

43
}