For some reasons when we delete a MergeTree Part in atomic way something may go wrong - and leave the `delete_tmp_*` folder or it's part on disk. This may lead to a disk space consumption over time.

It's suggested to delete this folders at least at server start-up. Current solution with `clearOldTemporaryDirectories()` doesn't work because this method is called periodically from a thread without any locks or advisory on folders - it may cause the race conditions.
return std::nullopt;
    /
    if (select_query->interpolate() && !select_query->interpolate()->children.empty())
        return std::nullopt;
    auto query_options = SelectQueryOptions(
        QueryProcessingStage::WithMergeableState,
        / 1,
        / true
    ).ignoreProjections().ignoreAlias();
    InterpreterSelectQuery select(
        query_ptr,
        query_context,
        query_options,
        std::move(query_info.subquery_for_sets),
        std::move(query_info.sets));
    const auto & analysis_result = select.getAnalysisResult();
    query_info.sets = std::move(select.getQueryAnalyzer()->getPreparedSets());
    query_info.subquery_for_sets = std::move(select.getQueryAnalyzer()->getSubqueriesForSets());
    bool can_use_aggregate_projection = true;
    /
    /
    if (analysis_result.join != nullptr || analysis_result.array_join != nullptr)
        can_use_aggregate_projection = false;
    /
    /
    /
    /
    /
    /
    /