mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
Put functions in BackupUtils.h to a separate namespace BackupUtils.
This commit is contained in:
parent
bd82a2dd97
commit
e6a9556daf
@ -122,7 +122,7 @@ BackupEntries BackupEntriesCollector::run()
|
||||
= BackupSettings::Util::filterHostIDs(backup_settings.cluster_host_ids, backup_settings.shard_num, backup_settings.replica_num);
|
||||
|
||||
/// Do renaming in the create queries according to the renaming config.
|
||||
renaming_map = makeRenamingMapFromBackupQuery(backup_query_elements);
|
||||
renaming_map = BackupUtils::makeRenamingMap(backup_query_elements);
|
||||
|
||||
/// Calculate the root path for collecting backup entries, it's either empty or has the format "shards/<shard_num>/replicas/<replica_num>/".
|
||||
calculateRootPathInBackup();
|
||||
@ -569,7 +569,7 @@ std::vector<std::pair<ASTPtr, StoragePtr>> BackupEntriesCollector::findTablesInD
|
||||
|
||||
auto filter_by_table_name = [&](const String & table_name)
|
||||
{
|
||||
if (isInnerTableShouldBeSkippedForBackup(database_name, table_name))
|
||||
if (BackupUtils::isInnerTable(database_name, table_name))
|
||||
return false;
|
||||
|
||||
if (database_info.tables.contains(table_name))
|
||||
|
@ -8,10 +8,10 @@
|
||||
#include <Common/setThreadName.h>
|
||||
|
||||
|
||||
namespace DB
|
||||
namespace DB::BackupUtils
|
||||
{
|
||||
|
||||
DDLRenamingMap makeRenamingMapFromBackupQuery(const ASTBackupQuery::Elements & elements)
|
||||
DDLRenamingMap makeRenamingMap(const ASTBackupQuery::Elements & elements)
|
||||
{
|
||||
DDLRenamingMap map;
|
||||
|
||||
@ -120,12 +120,12 @@ bool compareRestoredDatabaseDef(const IAST & restored_database_create_query, con
|
||||
return compareRestoredTableDef(restored_database_create_query, create_query_from_backup, global_context);
|
||||
}
|
||||
|
||||
bool isInnerTableShouldBeSkippedForBackup(const QualifiedTableName & table_name)
|
||||
bool isInnerTable(const QualifiedTableName & table_name)
|
||||
{
|
||||
return isInnerTableShouldBeSkippedForBackup(table_name.database, table_name.table);
|
||||
return isInnerTable(table_name.database, table_name.table);
|
||||
}
|
||||
|
||||
bool isInnerTableShouldBeSkippedForBackup(const String & /* database_name */, const String & table_name)
|
||||
bool isInnerTable(const String & /* database_name */, const String & table_name)
|
||||
{
|
||||
/// We skip inner tables of materialized views.
|
||||
return table_name.starts_with(".inner.") || table_name.starts_with(".inner_id.");
|
||||
|
@ -11,8 +11,11 @@ class AccessRightsElements;
|
||||
class DDLRenamingMap;
|
||||
struct QualifiedTableName;
|
||||
|
||||
namespace BackupUtils
|
||||
{
|
||||
|
||||
/// Initializes a DDLRenamingMap from a BACKUP or RESTORE query.
|
||||
DDLRenamingMap makeRenamingMapFromBackupQuery(const ASTBackupQuery::Elements & elements);
|
||||
DDLRenamingMap makeRenamingMap(const ASTBackupQuery::Elements & elements);
|
||||
|
||||
/// Returns access required to execute BACKUP query.
|
||||
AccessRightsElements getRequiredAccessToBackup(const ASTBackupQuery::Elements & elements);
|
||||
@ -22,7 +25,9 @@ bool compareRestoredTableDef(const IAST & restored_table_create_query, const IAS
|
||||
bool compareRestoredDatabaseDef(const IAST & restored_database_create_query, const IAST & create_query_from_backup, const ContextPtr & global_context);
|
||||
|
||||
/// Returns true if this table should be skipped while making a backup because it's an inner table.
|
||||
bool isInnerTableShouldBeSkippedForBackup(const QualifiedTableName & table_name);
|
||||
bool isInnerTableShouldBeSkippedForBackup(const String & database_name, const String & table_name);
|
||||
bool isInnerTable(const QualifiedTableName & table_name);
|
||||
bool isInnerTable(const String & database_name, const String & table_name);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -562,7 +562,7 @@ void BackupsWorker::doBackup(
|
||||
|
||||
/// Checks access rights if this is not ON CLUSTER query.
|
||||
/// (If this is ON CLUSTER query executeDDLQueryOnCluster() will check access rights later.)
|
||||
auto required_access = getRequiredAccessToBackup(backup_query->elements);
|
||||
auto required_access = BackupUtils::getRequiredAccessToBackup(backup_query->elements);
|
||||
if (!on_cluster)
|
||||
context->checkAccess(required_access);
|
||||
|
||||
|
@ -121,7 +121,7 @@ void RestorerFromBackup::run(Mode mode)
|
||||
restore_settings.cluster_host_ids, restore_settings.shard_num, restore_settings.replica_num);
|
||||
|
||||
/// Do renaming in the create queries according to the renaming config.
|
||||
renaming_map = makeRenamingMapFromBackupQuery(restore_query_elements);
|
||||
renaming_map = BackupUtils::makeRenamingMap(restore_query_elements);
|
||||
|
||||
/// Calculate the root path in the backup for restoring, it's either empty or has the format "shards/<shard_num>/replicas/<replica_num>/".
|
||||
findRootPathsInBackup();
|
||||
@ -420,7 +420,7 @@ void RestorerFromBackup::findTableInBackupImpl(const QualifiedTableName & table_
|
||||
}
|
||||
|
||||
QualifiedTableName table_name = renaming_map.getNewTableName(table_name_in_backup);
|
||||
if (skip_if_inner_table && isInnerTableShouldBeSkippedForBackup(table_name))
|
||||
if (skip_if_inner_table && BackupUtils::isInnerTable(table_name))
|
||||
return;
|
||||
|
||||
auto read_buffer = backup->readFile(*metadata_path);
|
||||
@ -766,7 +766,7 @@ void RestorerFromBackup::checkDatabase(const String & database_name)
|
||||
|
||||
ASTPtr existing_database_def = database->getCreateDatabaseQuery();
|
||||
ASTPtr database_def_from_backup = database_info.create_database_query;
|
||||
if (!compareRestoredDatabaseDef(*existing_database_def, *database_def_from_backup, context->getGlobalContext()))
|
||||
if (!BackupUtils::compareRestoredDatabaseDef(*existing_database_def, *database_def_from_backup, context->getGlobalContext()))
|
||||
{
|
||||
throw Exception(
|
||||
ErrorCodes::CANNOT_RESTORE_DATABASE,
|
||||
@ -937,7 +937,7 @@ void RestorerFromBackup::checkTable(const QualifiedTableName & table_name)
|
||||
{
|
||||
ASTPtr existing_table_def = database->getCreateTableQuery(resolved_id.table_name, context);
|
||||
ASTPtr table_def_from_backup = table_info.create_table_query;
|
||||
if (!compareRestoredTableDef(*existing_table_def, *table_def_from_backup, context->getGlobalContext()))
|
||||
if (!BackupUtils::compareRestoredTableDef(*existing_table_def, *table_def_from_backup, context->getGlobalContext()))
|
||||
{
|
||||
throw Exception(
|
||||
ErrorCodes::CANNOT_RESTORE_TABLE,
|
||||
|
Loading…
Reference in New Issue
Block a user