2019-05-10 03:42:28 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <Interpreters/BloomFilter.h>
|
|
|
|
#include <Storages/MergeTree/MergeTreeIndices.h>
|
|
|
|
#include <Storages/MergeTree/MergeTreeIndexGranuleBloomFilter.h>
|
|
|
|
#include <Storages/MergeTree/MergeTreeIndexAggregatorBloomFilter.h>
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
{
|
|
|
|
|
|
|
|
class MergeTreeIndexBloomFilter : public IMergeTreeIndex
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
MergeTreeIndexBloomFilter(
|
2019-06-20 00:33:37 +00:00
|
|
|
const String & name_, const ExpressionActionsPtr & expr_, const Names & columns_, const DataTypes & data_types_,
|
|
|
|
const Block & header_, size_t granularity_, size_t bits_per_row_, size_t hash_functions_);
|
2019-05-10 03:42:28 +00:00
|
|
|
|
|
|
|
MergeTreeIndexGranulePtr createIndexGranule() const override;
|
|
|
|
|
|
|
|
MergeTreeIndexAggregatorPtr createIndexAggregator() const override;
|
|
|
|
|
2019-06-19 15:30:48 +00:00
|
|
|
MergeTreeIndexConditionPtr createIndexCondition(const SelectQueryInfo & query_info, const Context & context) const override;
|
2019-05-10 03:42:28 +00:00
|
|
|
|
|
|
|
bool mayBenefitFromIndexForIn(const ASTPtr & node) const override;
|
|
|
|
|
|
|
|
private:
|
|
|
|
size_t bits_per_row;
|
|
|
|
size_t hash_functions;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|