ClickHouse/src/Storages/MergeTree/MergedColumnOnlyOutputStream.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

42 lines
1.4 KiB
C++
Raw Normal View History

#pragma once
#include <Storages/MergeTree/IMergedBlockOutputStream.h>
namespace DB
{
2019-10-22 17:42:59 +00:00
class MergeTreeDataPartWriterWide;
/// Writes only those columns that are in `header`
class MergedColumnOnlyOutputStream final : public IMergedBlockOutputStream
{
public:
/// Pass empty 'already_written_offset_columns' first time then and pass the same object to subsequent instances of MergedColumnOnlyOutputStream
/// if you want to serialize elements of Nested data structure in different instances of MergedColumnOnlyOutputStream.
MergedColumnOnlyOutputStream(
2022-10-22 22:51:59 +00:00
const MergeTreeMutableDataPartPtr & data_part,
const StorageMetadataPtr & metadata_snapshot_,
2020-04-17 11:59:10 +00:00
const Block & header_,
CompressionCodecPtr default_codec_,
2020-12-10 09:22:43 +00:00
const MergeTreeIndices & indices_to_recalc_,
2019-12-09 21:21:17 +00:00
WrittenOffsetColumns * offset_columns_ = nullptr,
2019-11-08 14:36:10 +00:00
const MergeTreeIndexGranularity & index_granularity = {},
2020-04-17 11:59:10 +00:00
const MergeTreeIndexGranularityInfo * index_granularity_info_ = nullptr);
2021-09-29 17:45:01 +00:00
Block getHeader() const { return header; }
2021-10-05 13:58:24 +00:00
void write(const Block & block) override;
MergeTreeData::DataPart::Checksums
fillChecksums(MergeTreeData::MutableDataPartPtr & new_part, MergeTreeData::DataPart::Checksums & all_checksums);
void finish(bool sync);
private:
Block header;
};
using MergedColumnOnlyOutputStreamPtr = std::shared_ptr<MergedColumnOnlyOutputStream>;
}