ref #9436
Currently EPHEMERAL column requires an explicit default value provided on CREATE TABLE - we can allow implicit default there

create.setTable(table_to_replace_name);
        return {};
    }
    catch (...)
    {
        
        if (created && !renamed)
        {
            auto drop_context = make_drop_context(true);
            InterpreterDropQuery(ast_drop, drop_context).execute();
        }
        throw;
    }
}
BlockIO InterpreterCreateQuery::fillTableIfNeeded(const ASTCreateQuery & create)
{
    
    if (create.select && !create.attach
        && !create.is_ordinary_view && !create.is_live_view && !create.is_window_view
        && (!create.is_materialized_view || create.is_populate))
    {
        auto insert = std::make_shared<ASTInsertQuery>();
        insert->table_id = {create.getDatabase(), create.getTable(), create.uuid};
        insert->select = create.select->clone();
        return InterpreterInsertQuery(insert, getContext(),
            getContext()->getSettingsRef().insert_allow_materialized_columns).execute();
    }
    return {};
}
void InterpreterCreateQuery::prepareOnClusterQuery(ASTCreateQuery & create, ContextPtr local_context, const String & cluster_name)