It seems MaterializeMySQL doesn't support Decimal data type when doing replication.
{
        switch (event->header.type)
        {
            case FORMAT_DESCRIPTION_EVENT:
            case QUERY_EVENT:
            case XID_EVENT: {
                binlog_pos = event->header.log_pos;
                break;
            }
            case ROTATE_EVENT: {
                auto rotate = std::static_pointer_cast<RotateEvent>(event);
                binlog_name = rotate->next_binlog;
                binlog_pos = event->header.log_pos;
                break;
            }
            case GTID_EVENT: {
                auto gtid_event = std::static_pointer_cast<GTIDEvent>(event);
                binlog_pos = event->header.log_pos;
                gtid_sets.update(gtid_event->gtid);
                break;
            }
            default:
                throw ReplicationError("Position update with unsupport event", ErrorCodes::LOGICAL_ERROR);
        }
    }
    void Position::update(UInt64 binlog_pos_, const String & binlog_name_, const String & gtid_sets_)