#pragma once #include #include namespace DB { struct IMetadataOperation { virtual void execute(std::unique_lock & metadata_lock) = 0; virtual void undo(std::unique_lock & metadata_lock) = 0; virtual void finalize() { } virtual ~IMetadataOperation() = default; }; using MetadataOperationPtr = std::unique_ptr; }