ClickHouse/dbms/include/DB/Storages/MergeTree/ReshardingJob.h

57 lines
1.4 KiB
C++
Raw Normal View History

2016-01-28 01:00:27 +00:00
#pragma once
#include <DB/Storages/AlterCommands.h>
#include <DB/Storages/IStorage.h>
2016-01-28 01:00:27 +00:00
#include <string>
namespace DB
{
2016-03-01 17:47:53 +00:00
class StorageReplicatedMergeTree;
2016-01-28 01:00:27 +00:00
/** Описание задачи перешардирования.
*/
struct ReshardingJob final
{
public:
ReshardingJob() = default;
2016-03-01 17:47:53 +00:00
/// Создаёт описание на основе его сериализованного представления.
ReshardingJob(const std::string & serialized_job);
2016-01-28 01:00:27 +00:00
ReshardingJob(const std::string & database_name_, const std::string & table_name_,
const std::string & partition_, const WeightedZooKeeperPaths & paths_,
const ASTPtr & sharding_key_expr_, const std::string & coordinator_id_);
2016-01-28 01:00:27 +00:00
ReshardingJob(const ReshardingJob &) = delete;
ReshardingJob & operator=(const ReshardingJob &) = delete;
2016-01-28 01:00:27 +00:00
ReshardingJob(ReshardingJob &&) = default;
ReshardingJob & operator=(ReshardingJob &&) = default;
2016-03-01 17:47:53 +00:00
operator bool() const;
2016-03-01 17:47:53 +00:00
/// Сериализует описание задачи.
std::string toString() const;
2016-01-28 01:00:27 +00:00
bool isCoordinated() const;
2016-03-01 17:47:53 +00:00
void clear();
2016-03-01 17:47:53 +00:00
2016-01-28 01:00:27 +00:00
public:
std::string database_name;
std::string table_name;
std::string partition;
std::string job_name;
WeightedZooKeeperPaths paths;
ASTPtr sharding_key_expr;
std::string coordinator_id;
StorageReplicatedMergeTree * storage = nullptr;
UInt64 block_number = 0;
bool do_copy;
bool is_aborted = false;
2016-01-28 01:00:27 +00:00
};
}