It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
{
        header.dump(out);
        out << "Thread ID: " << this->thread_id << std::endl;
        out << "Execution Time: " << this->exec_time << std::endl;
        out << "Schema Len: " << std::to_string(this->schema_len) << std::endl;
        out << "Error Code: " << this->error_code << std::endl;
        out << "Status Len: " << this->status_len << std::endl;
        out << "Schema: " << this->schema << std::endl;
        out << "Query: " << this->query << std::endl;
    }
    void XIDEvent::parseImpl(ReadBuffer & payload) { payload.readStrict(reinterpret_cast<char *>(&xid), 8); }
    void XIDEvent::dump(std::ostream & out) const
    {
        header.dump(out);
        out << "XID: " << this->xid << std::endl;
    }
    void TableMapEvent::parseImpl(ReadBuffer & payload)