removed indexpart class

This commit is contained in:
Nikita Vasilev 2019-01-04 18:54:34 +03:00
parent 92a850ceb0
commit f92750223f
5 changed files with 8 additions and 39 deletions

View File

@ -1039,7 +1039,6 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mutatePartToTempor
new_data_part->index = source_part->index;
new_data_part->partition.assign(source_part->partition);
new_data_part->minmax_idx = source_part->minmax_idx;
new_data_part->index_parts = source_part->index_parts;
new_data_part->modification_time = time(nullptr);
new_data_part->bytes_on_disk = MergeTreeData::DataPart::calculateTotalSizeOnDisk(new_data_part->getFullPath());
}

View File

@ -208,8 +208,6 @@ struct MergeTreeDataPart
MinMaxIndex minmax_idx;
MergeTreeIndexParts index_parts;
Checksums checksums;
/// Columns description.

View File

@ -530,8 +530,8 @@ namespace DB
/// It can be done in multiple threads (one thread for each part).
/// Maybe it should be moved to BlockInputStream, but it can cause some problems.
for (auto index_part : part->index_parts) {
auto condition = index_part->createIndexConditionOnPart(query_info, context);
for (auto index : data.indexes) {
auto condition = index->createIndexConditionOnPart(query_info, context);
if (!condition->alwaysUnknownOrTrue()) {
ranges.ranges = condition->filterRanges(ranges.ranges);
}

View File

@ -12,11 +12,6 @@ namespace ErrorCodes
IndexType IndexCondition::indexType() const {
return part->indexType();
}
IndexType MergeTreeIndexPart::indexType() const {
return index->indexType();
}

View File

@ -21,20 +21,16 @@ enum class IndexType {
class MergeTreeIndex;
struct MergeTreeIndexPart;
using MergeTreeIndexPtr = std::shared_ptr<const MergeTreeIndex>;
using MutableMergeTreeIndexPtr = std::shared_ptr<MergeTreeIndex>;
using MergeTreeIndexes = std::vector<MutableMergeTreeIndexPtr>;
using MergeTreeIndexPartPtr = std::shared_ptr<MergeTreeIndexPart>;
using MergeTreeIndexParts = std::vector<MergeTreeIndexPartPtr>;
/// Condition on the index.
/// It works only with one indexPart (MergeTreeDataPart).
class IndexCondition {
friend MergeTreeIndexPart;
friend MergeTreeIndex;
public:
virtual ~IndexCondition() = default;
@ -51,7 +47,7 @@ protected:
IndexCondition() = default;
public:
MergeTreeIndexPartPtr part;
MergeTreeIndexPtr index;
};
using IndexConditionPtr = std::shared_ptr<IndexCondition>;
@ -59,7 +55,7 @@ using IndexConditionPtr = std::shared_ptr<IndexCondition>;
struct MergeTreeIndexGranule
{
friend MergeTreeIndexPart;
friend MergeTreeIndex;
public:
virtual ~MergeTreeIndexGranule();
@ -76,28 +72,6 @@ using MergeTreeIndexGranulePtr = std::shared_ptr<MergeTreeIndexGranule>;
using MergeTreeIndexGranules = std::vector<MergeTreeIndexGranulePtr>;
/// Data structure for operations with index data for each MergeTreeDataPart.
/// Stores information specific for DataPart.
/// Возможно будет убран.
struct MergeTreeIndexPart
{
friend MergeTreeIndex;
public:
MergeTreeIndexPart() = default;
virtual ~MergeTreeIndexPart() = default;
IndexType indexType() const;
virtual MergeTreeIndexPartPtr cloneEmpty() const = 0;
virtual IndexConditionPtr createIndexConditionOnPart(
const SelectQueryInfo & query_info, const Context & context) const = 0;
MergeTreeIndexPtr index;
};
/// Structure for storing basic index info like columns, expression, arguments, ...
class MergeTreeIndex
{
@ -111,6 +85,9 @@ public:
virtual MergeTreeIndexGranulePtr createIndexGranule() const = 0;
virtual IndexConditionPtr createIndexConditionOnPart(
const SelectQueryInfo & query_info, const Context & context) const = 0;
String name;
ExpressionActionsPtr expr;
size_t granularity;