ClickHouse/dbms/include/DB/DataStreams/FilterBlockInputStream.h

31 lines
898 B
C
Raw Normal View History

2011-08-22 20:37:21 +00:00
#pragma once
#include <Poco/SharedPtr.h>
#include <DB/DataStreams/IBlockInputStream.h>
namespace DB
{
using Poco::SharedPtr;
/** Реализует операции WHERE, HAVING.
* На вход подаётся поток блоков, в котором в одном из столбцов типа ColumnUInt8 содержатся условия фильтрации.
2011-08-28 05:13:24 +00:00
* Возвращается поток блоков, в котором содержатся только отфильтрованные строки.
2011-08-22 20:37:21 +00:00
*/
class FilterBlockInputStream : public IBlockInputStream
{
public:
2011-08-28 05:13:24 +00:00
/// filter_column_ - номер столбца с условиями фильтрации. -1 - последний столбец
FilterBlockInputStream(BlockInputStreamPtr input_, ssize_t filter_column_ = -1);
2011-08-22 20:37:21 +00:00
Block read();
private:
2011-08-28 02:22:23 +00:00
BlockInputStreamPtr input;
2011-08-28 05:13:24 +00:00
ssize_t filter_column;
2011-08-22 20:37:21 +00:00
};
}