mysql have table t(a Int, b Int), 2 records: (1,1) and (2, 2), then in ck count
`select count(1) from ckdb.t ` -- 2, that's ok.
then, mysql  delete (2,2) and ck count
`select count(1) from ckdb.t ` -- still 2, that's not correct .
{
    public:
        virtual String getName() const = 0;
        virtual Position getPosition() const = 0;
        virtual BinlogEventPtr readOneEvent() = 0;
        virtual void setReplicateDatabase(String db) = 0;
        virtual void setGTIDSets(GTIDSets sets) = 0;
        virtual ~IFlavor() override = default;
    };
    class MySQLFlavor : public IFlavor
    {
    public:
        void readPayloadImpl(ReadBuffer & payload) override;
        String getName() const override { return "MySQL"; }
        Position getPosition() const override { return position; }
        BinlogEventPtr readOneEvent() override { return event; }
        void setReplicateDatabase(String db) override { replicate_do_db = std::move(db); }
        void setGTIDSets(GTIDSets sets) override { position.gtid_sets = std::move(sets); }
    private:
        Position position;
        BinlogEventPtr event;
        String replicate_do_db;
        std::shared_ptr<TableMapEvent> table_map;
        inline bool do_replicate() { return (replicate_do_db.empty() || table_map->schema == replicate_do_db); }
    };
}
}