24#ifndef MYSQL_GTID_GTIDSET_H
25#define MYSQL_GTID_GTIDSET_H
211 virtual std::size_t
count()
const;
251 [[nodiscard]]
virtual bool do_add(
const Tsid &tsid,
253 [[nodiscard]]
virtual bool do_add(
const Uuid &uuid,
const Tag &tag,
312 [[nodiscard]]
virtual bool add(
const Tsid &tsid,
353 virtual bool add(
const Gtid >id);
379 virtual void reset();
394 virtual std::size_t
count()
const;
This class represents a range of transaction identifiers.
Definition: gtidset.h:53
virtual bool intersects_or_contiguous(const Gno_interval &other) const
Checks if the other interval intersects or is contiguous with this one.
Definition: gtidset.cpp:75
virtual bool operator==(const Gno_interval &other) const
Compares this interval with another one.
Definition: gtidset.cpp:46
static const std::string SEPARATOR_GNO_START_END
In 'UUID:GNO-GNO', this is the '-'.
Definition: gtidset.h:56
gno_t m_start
Definition: gtidset.h:59
virtual ~Gno_interval()=default
Gno_interval(const Gno_interval &other)
Construct a new Gno_interval object from the other one provided.
Definition: gtidset.cpp:37
virtual gno_t get_start() const
Gets the first sequence number in the interval.
Definition: gtidset.cpp:79
virtual std::string to_string() const
Gets a human readable representation of this identifier.
Definition: gtidset.cpp:91
gno_t m_next_gno_after_end
Definition: gtidset.h:60
Gno_interval & operator=(const Gno_interval &other)
Copy assignment.
Definition: gtidset.cpp:40
virtual bool intersects(const Gno_interval &other) const
This checks whether this interval intersects with the other.
Definition: gtidset.cpp:59
virtual bool add(const Gno_interval &other)
Adds the other interval to this one.
Definition: gtidset.cpp:82
virtual gno_t get_end() const
Gets the last sequence number in the interval.
Definition: gtidset.cpp:80
virtual std::size_t count() const
Number of entries in this interval.
Definition: gtidset.cpp:30
virtual bool operator<(const Gno_interval &other) const
Establishes a total order between two intervals.
Definition: gtidset.cpp:51
virtual bool contiguous(const Gno_interval &other) const
Checks if this interval is contiguous with the other one.
Definition: gtidset.cpp:69
virtual bool is_valid() const
Checks whether this interval is valid or not.
Definition: gtidset.cpp:100
This class represents a set of transaction identifiers.
Definition: gtidset.h:240
virtual std::size_t count() const
Gets the number of entries in this set.
Definition: gtidset.cpp:277
virtual std::string to_string() const
A human readable representation of this set.
Definition: gtidset.cpp:225
Gtid_set(const Gtid_set &other)=delete
static const std::string separator_uuid_set
In 'SID:GNO,SID:GNO', this is the ','.
Definition: gtidset.h:246
virtual bool operator==(const Gtid_set &other) const
Compares this set with another one.
Definition: gtidset.cpp:113
virtual bool do_add(const Tsid &tsid, const Gno_interval &interval)
Definition: gtidset.cpp:159
std::map< Uuid, Tag_interval_map > Tsid_interval_map
Definition: gtidset.h:265
std::set< Gno_interval > Interval_set
Tsid_interval_map is a 2-level map between tsids and an ordered set of Gno_intervals.
Definition: gtidset.h:263
static const std::string separator_interval
In 'UUID:INTERVAL:INTERVAL', this is the second ':'.
Definition: gtidset.h:244
virtual Gtid_format get_gtid_set_format() const
Iterates through recorded TSIDs and returns format of the Gtid_set.
Definition: gtidset.cpp:293
static const std::string empty_gtid_set_str
Definition: gtidset.h:242
virtual bool add(const Tsid &tsid, const Gno_interval &interval)
Adds a new interval indexed by the given uuid.
Definition: gtidset.cpp:205
virtual void reset()
Resets this set, making it empty.
Definition: gtidset.cpp:291
virtual const Tsid_interval_map & get_gtid_set() const
Gets a copy of the internal set.
Definition: gtidset.cpp:155
virtual bool contains(const Gtid >id) const
Checks whether this set contains the given identifier.
Definition: gtidset.cpp:252
virtual bool is_empty() const
Returns true if this is an empty set.
Definition: gtidset.cpp:275
std::map< Tag, Interval_set > Tag_interval_map
Definition: gtidset.h:264
Tsid_interval_map m_gtid_set
An ordered map of entries mapping Uuid to a list of intervals.
Definition: gtidset.h:400
Gtid_set & operator=(const Gtid_set &other)
Copy assignment.
Definition: gtidset.cpp:106
virtual std::size_t get_num_tsids() const
Get the num TSIDs held in the GTID set.
Definition: gtidset.cpp:267
Represents a MySQL Global Transaction Identifier.
Definition: gtid.h:47
Representation of the GTID tag.
Definition: tag.h:49
Represents Transaction Source Identifier which is composed of source UUID and transaction tag.
Definition: tsid.h:44
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
static int interval
Definition: mysqladmin.cc:72
Gtid_format
Gtid binary format indicator.
Definition: gtid_format.h:38
std::int64_t gno_t
Definition: global.h:37
mysql::gtid::Tsid Tsid
Definition: rpl_gtid_state.cc:56
Uuid is a trivial and of standard layout The structure contains the following components.
Definition: uuid.h:64