If they are defined, they can override table-level settings.
if (!getStorageID().hasUUID())
        getContext()->dropCaches();
    LOG_TRACE(log, "dropAllData: removing data from filesystem.");
    
    clearPartsFromFilesystem(all_parts);
    for (const auto & disk : getDisks())
    {
        if (disk->isBroken())
            continue;
        try
        {
            disk->removeRecursive(relative_data_path);
        }
        catch (const fs::filesystem_error & e)
        {
            if (e.code() == std::errc::no_such_file_or_directory)
            {
                
                tryLogCurrentException(__PRETTY_FUNCTION__);
            }
            else
                throw;
        }
    }
    setDataVolume(0, 0, 0);
    LOG_TRACE(log, "dropAllData: done.");
}
void MergeTreeData::dropIfEmpty()