2017-07-04 16:53:37 +00:00
|
|
|
#include <DataStreams/FilterColumnsBlockInputStream.h>
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
{
|
|
|
|
|
2018-02-18 03:23:48 +00:00
|
|
|
Block FilterColumnsBlockInputStream::getHeader() const
|
2018-01-06 18:10:44 +00:00
|
|
|
{
|
|
|
|
Block block = children.back()->getHeader();
|
|
|
|
Block filtered;
|
|
|
|
|
|
|
|
for (const auto & it : columns_to_save)
|
|
|
|
if (throw_if_column_not_found || block.has(it))
|
|
|
|
filtered.insert(std::move(block.getByName(it)));
|
|
|
|
|
|
|
|
return filtered;
|
|
|
|
}
|
|
|
|
|
2017-07-04 16:53:37 +00:00
|
|
|
Block FilterColumnsBlockInputStream::readImpl()
|
|
|
|
{
|
|
|
|
Block block = children.back()->read();
|
|
|
|
|
|
|
|
if (!block)
|
|
|
|
return block;
|
|
|
|
|
|
|
|
Block filtered;
|
|
|
|
|
|
|
|
for (const auto & it : columns_to_save)
|
2017-07-11 13:20:37 +00:00
|
|
|
if (throw_if_column_not_found || block.has(it))
|
|
|
|
filtered.insert(std::move(block.getByName(it)));
|
2017-07-04 16:53:37 +00:00
|
|
|
|
|
|
|
return filtered;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|