It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
{
    public:
        FormatDescriptionEvent(EventHeader && header_)
            : EventBase(std::move(header_)), binlog_version(0), create_timestamp(0), event_header_length(0)
        {
        }
    protected:
        UInt16 binlog_version;
        String server_version;
        UInt32 create_timestamp;
        UInt8 event_header_length;
        String event_type_header_length;
        void dump(std::ostream & out) const override;
        void parseImpl(ReadBuffer & payload) override;
    private:
        std::vector<UInt8> post_header_lens;
    };
    class RotateEvent : public EventBase
    {
    public:
        UInt64 position;
        String next_binlog;
        RotateEvent(EventHeader && header_) : EventBase(std::move(header_)), position(0) {}
        void dump(std::ostream & out) const override;
    protected:
        void parseImpl(ReadBuffer & payload) override;
    };
    enum QueryType