It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
using BinlogEventPtr = std::shared_ptr<EventBase>;
    enum BinlogChecksumAlg
    {
        BINLOG_CHECKSUM_ALG_OFF = 0,
        BINLOG_CHECKSUM_ALG_CRC32 = 1,
        BINLOG_CHECKSUM_ALG_ENUM_END,
        BINLOG_CHECKSUM_ALG_UNDEF = 255
    };
    inline String to_string(BinlogChecksumAlg type)
    {
        switch (type)
        {
            case BINLOG_CHECKSUM_ALG_OFF:
                return "BINLOG_CHECKSUM_ALG_OFF";
            case BINLOG_CHECKSUM_ALG_CRC32:
                return "BINLOG_CHECKSUM_ALG_CRC32";
            case BINLOG_CHECKSUM_ALG_ENUM_END:
                return "BINLOG_CHECKSUM_ALG_ENUM_END";
            case BINLOG_CHECKSUM_ALG_UNDEF:
                return "BINLOG_CHECKSUM_ALG_UNDEF";
        }
        return std::string("Unknown checksum alg: ") + std::to_string(static_cast<int>(type));
    }
    
    enum EventType