Skip to content

Commit b7c0c11

Browse files
authored
Merge pull request ClickHouse#80282 from vitlibar/fix-adjust-create-query-for-backup
Fix adjustCreateQueryForBackup()
2 parents 384856b + ac4de17 commit b7c0c11

File tree

7 files changed

+12
-13
lines changed

7 files changed

+12
-13
lines changed

src/Databases/DatabaseMemory.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ std::vector<std::pair<ASTPtr, StoragePtr>> DatabaseMemory::getTablesForBackup(co
205205
}
206206

207207
chassert(storage);
208-
storage->adjustCreateQueryForBackup(create_table_query);
208+
storage->applyMetadataChangesToCreateQueryForBackup(create_table_query);
209209
res.emplace_back(create_table_query, storage);
210210
}
211211

src/Databases/DatabaseReplicated.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,14 +1993,13 @@ DatabaseReplicated::getTablesForBackup(const FilterByNameFunction & filter, cons
19931993

19941994
StoragePtr storage;
19951995
if (create.uuid != UUIDHelpers::Nil)
1996-
{
19971996
storage = DatabaseCatalog::instance().tryGetByUUID(create.uuid).second;
1998-
if (storage)
1999-
storage->adjustCreateQueryForBackup(create_table_query);
2000-
}
20011997

2002-
/// `storage` is allowed to be null here. In this case it means that this storage exists on other replicas
2003-
/// but it has not been created on this replica yet.
1998+
/// Pointer `storage` is allowed to be null here (that means that this storage exists on other replicas
1999+
/// but it has not been created on this replica yet).
2000+
2001+
/// There is no need to call `storage->applyMetadataChangesToCreateQueryForBackup()` here
2002+
/// because a consistent metadata snapshot contains table definitions with already applied metadata changes.
20042003

20052004
res.emplace_back(create_table_query, storage);
20062005
}

src/Databases/DatabasesCommon.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ std::vector<std::pair<ASTPtr, StoragePtr>> DatabaseWithOwnTablesBase::getTablesF
566566
create->setTable(it->name());
567567
}
568568

569-
storage->adjustCreateQueryForBackup(create_table_query);
569+
storage->applyMetadataChangesToCreateQueryForBackup(create_table_query);
570570
res.emplace_back(create_table_query, storage);
571571
}
572572

src/Storages/IStorage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ std::optional<CheckResult> IStorage::checkDataNext(DataValidationTasksPtr & /* c
372372
return {};
373373
}
374374

375-
void IStorage::adjustCreateQueryForBackup(ASTPtr &) const
375+
void IStorage::applyMetadataChangesToCreateQueryForBackup(ASTPtr &) const
376376
{
377377
}
378378

src/Storages/IStorage.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ class IStorage : public std::enable_shared_from_this<IStorage>, public TypePromo
231231
bool isVirtualColumn(const String & column_name, const StorageMetadataPtr & metadata_snapshot) const;
232232

233233
/// Modify a CREATE TABLE query to make a variant which must be written to a backup.
234-
virtual void adjustCreateQueryForBackup(ASTPtr & create_query) const;
234+
virtual void applyMetadataChangesToCreateQueryForBackup(ASTPtr & create_query) const;
235235

236236
/// Makes backup entries to backup the data of this storage.
237237
virtual void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional<ASTs> & partitions);

src/Storages/StorageReplicatedMergeTree.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10921,7 +10921,7 @@ void StorageReplicatedMergeTree::createAndStoreFreezeMetadata(DiskPtr disk, Data
1092110921
}
1092210922

1092310923

10924-
void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_query) const
10924+
void StorageReplicatedMergeTree::applyMetadataChangesToCreateQueryForBackup(ASTPtr & create_query) const
1092510925
{
1092610926
try
1092710927
{
@@ -10939,7 +10939,7 @@ void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_quer
1093910939
catch (...)
1094010940
{
1094110941
/// We can continue making a backup with non-adjusted query.
10942-
tryLogCurrentException(log, "Failed to adjust the create query of this table for backup");
10942+
tryLogCurrentException(log, fmt::format("Failed to apply metadata changes to the create query of table {}", getStorageID().getNameForLogs()));
1094310943
}
1094410944
}
1094510945

src/Storages/StorageReplicatedMergeTree.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ class StorageReplicatedMergeTree final : public MergeTreeData
239239
bool canUseAdaptiveGranularity() const override;
240240

241241
/// Modify a CREATE TABLE query to make a variant which must be written to a backup.
242-
void adjustCreateQueryForBackup(ASTPtr & create_query) const override;
242+
void applyMetadataChangesToCreateQueryForBackup(ASTPtr & create_query) const override;
243243

244244
/// Makes backup entries to backup the data of the storage.
245245
void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional<ASTs> & partitions) override;

0 commit comments

Comments
 (0)