It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
{
    public:
        WriteRowsEvent(std::shared_ptr<TableMapEvent> table_map_, EventHeader && header_) : RowsEvent(table_map_, std::move(header_)) {}
        MySQLEventType type() const override { return MYSQL_WRITE_ROWS_EVENT; }
    };
    class DeleteRowsEvent : public RowsEvent
    {
    public:
        DeleteRowsEvent(std::shared_ptr<TableMapEvent> table_map_, EventHeader && header_) : RowsEvent(table_map_, std::move(header_)) {}
        MySQLEventType type() const override { return MYSQL_DELETE_ROWS_EVENT; }
    };
    class UpdateRowsEvent : public RowsEvent
    {
    public:
        UpdateRowsEvent(std::shared_ptr<TableMapEvent> table_map_, EventHeader && header_) : RowsEvent(table_map_, std::move(header_)) {}
        MySQLEventType type() const override { return MYSQL_UPDATE_ROWS_EVENT; }
    };
    class GTIDEvent : public EventBase