mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-23 02:00:49 +00:00
dbms: tiny modification [#CONV-2944].
This commit is contained in:
parent
c1f67a439d
commit
2d0b3c97d5
@ -18,19 +18,14 @@ using Poco::SharedPtr;
|
|||||||
class FilterBlockInputStream : public IProfilingBlockInputStream
|
class FilterBlockInputStream : public IProfilingBlockInputStream
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// filter_column_ - номер столбца с условиями фильтрации. -1 - последний столбец
|
/// filter_column_ - номер столбца с условиями фильтрации.
|
||||||
FilterBlockInputStream(BlockInputStreamPtr input_, ssize_t filter_column_ = -1);
|
FilterBlockInputStream(BlockInputStreamPtr input_, ssize_t filter_column_);
|
||||||
FilterBlockInputStream(BlockInputStreamPtr input_, const String & filter_column_name_);
|
FilterBlockInputStream(BlockInputStreamPtr input_, const String & filter_column_name_);
|
||||||
Block readImpl();
|
Block readImpl();
|
||||||
|
|
||||||
String getName() const { return "FilterBlockInputStream"; }
|
String getName() const { return "FilterBlockInputStream"; }
|
||||||
|
|
||||||
BlockInputStreamPtr clone()
|
BlockInputStreamPtr clone() { return new FilterBlockInputStream(input, filter_column); }
|
||||||
{
|
|
||||||
return filter_column_name.empty()
|
|
||||||
? new FilterBlockInputStream(input, filter_column)
|
|
||||||
: new FilterBlockInputStream(input, filter_column_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BlockInputStreamPtr input;
|
BlockInputStreamPtr input;
|
||||||
|
@ -36,10 +36,8 @@ Block FilterBlockInputStream::readImpl()
|
|||||||
throw Exception("There is only filter column in block.", ErrorCodes::ONLY_FILTER_COLUMN_IN_BLOCK);
|
throw Exception("There is only filter column in block.", ErrorCodes::ONLY_FILTER_COLUMN_IN_BLOCK);
|
||||||
|
|
||||||
/// Найдём настоящую позицию столбца с фильтром в блоке.
|
/// Найдём настоящую позицию столбца с фильтром в блоке.
|
||||||
if (!filter_column_name.empty())
|
if (filter_column == -1)
|
||||||
filter_column = res.getPositionByName(filter_column_name);
|
filter_column = res.getPositionByName(filter_column_name);
|
||||||
else if (filter_column < 0)
|
|
||||||
filter_column = static_cast<ssize_t>(res.columns()) + filter_column;
|
|
||||||
|
|
||||||
/// Любой столбец - не являющийся фильтром.
|
/// Любой столбец - не являющийся фильтром.
|
||||||
IColumn & any_not_filter_column = *res.getByPosition(filter_column == 0 ? 1 : 0).column;
|
IColumn & any_not_filter_column = *res.getByPosition(filter_column == 0 ? 1 : 0).column;
|
||||||
|
Loading…
Reference in New Issue
Block a user