ClickHouse/dbms/src/Storages/MergeTree/MergeTreeDataPartCompact.h

73 lines
2.4 KiB
C++
Raw Normal View History

2019-10-10 16:30:30 +00:00
#pragma once
#include <Storages/MergeTree/IMergeTreeDataPart.h>
namespace DB
{
struct ColumnSize;
class MergeTreeData;
/// Description of the data part.
class MergeTreeDataPartCompact : public IMergeTreeDataPart
{
public:
using Checksums = MergeTreeDataPartChecksums;
using Checksum = MergeTreeDataPartChecksums::Checksum;
2019-12-16 14:51:19 +00:00
static constexpr auto DATA_FILE_NAME = "data";
static constexpr auto DATA_FILE_EXTENSION = ".bin";
2020-01-13 14:53:32 +00:00
static constexpr auto DATA_FILE_NAME_WITH_EXTENSION = "data.bin";
2019-12-16 14:51:19 +00:00
2019-10-16 18:27:53 +00:00
MergeTreeDataPartCompact(
2019-10-10 16:30:30 +00:00
const MergeTreeData & storage_,
const String & name_,
const MergeTreePartInfo & info_,
2019-12-19 13:10:57 +00:00
const DiskPtr & disk_,
2019-10-16 18:27:53 +00:00
const std::optional<String> & relative_path_ = {});
2019-10-10 16:30:30 +00:00
MergeTreeDataPartCompact(
2019-10-10 16:30:30 +00:00
MergeTreeData & storage_,
const String & name_,
2019-12-19 13:10:57 +00:00
const DiskPtr & disk_,
2019-10-16 18:27:53 +00:00
const std::optional<String> & relative_path_ = {});
2019-10-10 16:30:30 +00:00
MergeTreeReaderPtr getReader(
const NamesAndTypesList & columns,
const MarkRanges & mark_ranges,
UncompressedCache * uncompressed_cache,
MarkCache * mark_cache,
const MergeTreeReaderSettings & reader_settings_,
2019-10-10 16:30:30 +00:00
const ValueSizeMap & avg_value_size_hints = ValueSizeMap{},
const ReadBufferFromFileBase::ProfileCallback & profile_callback = ReadBufferFromFileBase::ProfileCallback{}) const override;
2019-10-21 15:33:59 +00:00
MergeTreeWriterPtr getWriter(
const NamesAndTypesList & columns_list,
2019-11-07 11:11:38 +00:00
const std::vector<MergeTreeIndexPtr> & indices_to_recalc,
const CompressionCodecPtr & default_codec_,
const MergeTreeWriterSettings & writer_settings,
2019-11-07 11:11:38 +00:00
const MergeTreeIndexGranularity & computed_index_granularity = {}) const override;
2019-10-10 16:30:30 +00:00
bool isStoredOnDisk() const override { return true; }
ColumnSize getTotalColumnsSize() const override;
2019-10-10 16:30:30 +00:00
2019-12-12 18:55:19 +00:00
bool hasColumnFiles(const String & column_name, const IDataType & type) const override;
2019-12-19 13:10:57 +00:00
String getFileNameForColumn(const NameAndTypePair & /* column */) const override { return DATA_FILE_NAME; }
2019-12-16 14:51:19 +00:00
NameToNameMap createRenameMapForAlter(
AlterAnalysisResult & analysis_result,
const NamesAndTypesList & old_columns) const override;
2019-12-12 18:55:19 +00:00
2019-11-18 12:22:27 +00:00
~MergeTreeDataPartCompact() override;
2019-10-10 16:30:30 +00:00
private:
2020-01-16 16:15:01 +00:00
void checkConsistency(bool require_part_metadata) const override;
2019-10-10 16:30:30 +00:00
/// Loads marks index granularity into memory
2019-10-31 14:44:17 +00:00
void loadIndexGranularity() override;
2019-10-10 16:30:30 +00:00
};
}