It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
{
        out << "\n=== " << to_string(this->type) << " ===" << std::endl;
        out << "Timestamp: " << this->timestamp << std::endl;
        out << "Event Type: " << this->type << std::endl;
        out << "Server ID: " << this->server_id << std::endl;
        out << "Event Size: " << this->event_size << std::endl;
        out << "Log Pos: " << this->log_pos << std::endl;
        out << "Flags: " << this->flags << std::endl;
    }
    
    void FormatDescriptionEvent::parseImpl(ReadBuffer & payload)
    {
        payload.readStrict(reinterpret_cast<char *>(&binlog_version), 2);
        assert(binlog_version == EVENT_VERSION_V4);
        server_version.resize(50);
        payload.readStrict(reinterpret_cast<char *>(server_version.data()), 50);
        payload.readStrict(reinterpret_cast<char *>(&create_timestamp), 4);
        payload.readStrict(reinterpret_cast<char *>(&event_header_length), 1);
        assert(event_header_length == EVENT_HEADER_LENGTH);
        readStringUntilEOF(event_type_header_length, payload);
    }
    void FormatDescriptionEvent::dump(std::ostream & out) const