It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
{
    public:
        XIDEvent(EventHeader && header_) : EventBase(std::move(header_)), xid(0) {}
    protected:
        UInt64 xid;
        void dump(std::ostream & out) const override;
        void parseImpl(ReadBuffer & payload) override;
    };
    class TableMapEvent : public EventBase
    {
    public:
        UInt64 table_id;
        UInt16 flags;
        UInt8 schema_len;
        String schema;
        UInt8 table_len;
        String table;
        UInt32 column_count;
        std::vector<UInt8> column_type;
        std::vector<UInt16> column_meta;
        Bitmap null_bitmap;
        TableMapEvent(EventHeader && header_) : EventBase(std::move(header_)), table_id(0), flags(0), schema_len(0), table_len(0), column_count(0) {}
        void dump(std::ostream & out) const override;
    protected:
        void parseImpl(ReadBuffer & payload) override;
        void parseMeta(String meta);
    };
    class RowsEvent : public EventBase