**Use case**
mysql repl to clickhouse

**Describe the solution you'd like**
Hope MaterializeMySQL engine can support MySQL prefix index



{
    if (rename_query.exchange)
        throw Exception("Cannot execute exchange for external ddl query.", ErrorCodes::NOT_IMPLEMENTED);
}
ASTs InterpreterRenameImpl::getRewrittenQueries(
    const InterpreterRenameImpl::TQuery & rename_query, const Context & context, const String & mapped_to_database, const String & mysql_database)
{
    ASTRenameQuery::Elements elements;
    for (const auto & rename_element : rename_query.elements)
    {
        const auto & to_database =  resolveDatabase(rename_element.to.database, mysql_database, mapped_to_database, context);
        const auto & from_database =  resolveDatabase(rename_element.from.database, mysql_database, mapped_to_database, context);
        if ((from_database == mapped_to_database || to_database == mapped_to_database) && to_database != from_database)
            throw Exception("Cannot rename with other database for external ddl query.", ErrorCodes::NOT_IMPLEMENTED);
        if (from_database == mapped_to_database)
        {
            elements.push_back(ASTRenameQuery::Element());
            elements.back().from.database = mapped_to_database;
            elements.back().from.table = rename_element.from.table;
            elements.back().to.database = mapped_to_database;
            elements.back().to.table = rename_element.to.table;
        }
    }
    if (elements.empty())
        return ASTs{};
    auto rewritten_query = std::make_shared<ASTRenameQuery>();
    rewritten_query->elements = elements;
    return ASTs{rewritten_query};
}
void InterpreterAlterImpl::validate(const InterpreterAlterImpl::TQuery & , const Context & )