MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / ParseUUIDSet

Function ParseUUIDSet

IceFireDB-SQLite/pkg/mysql/mysql/mysql_gtid.go:164–189  ·  view source on GitHub ↗
(str string)

Source from the content-addressed store, hash-verified

162}
163
164func ParseUUIDSet(str string) (*UUIDSet, error) {
165 str = strings.TrimSpace(str)
166 sep := strings.Split(str, ":")
167 if len(sep) < 2 {
168 return nil, errors.Errorf("invalid GTID format, must UUID:interval[:interval]")
169 }
170
171 var err error
172 s := new(UUIDSet)
173 if s.SID, err = uuid.FromString(sep[0]); err != nil {
174 return nil, errors.Trace(err)
175 }
176
177 // Handle interval
178 for i := 1; i < len(sep); i++ {
179 if in, err := parseInterval(sep[i]); err != nil {
180 return nil, errors.Trace(err)
181 } else {
182 s.Intervals = append(s.Intervals, in)
183 }
184 }
185
186 s.Intervals = s.Intervals.Normalize()
187
188 return s, nil
189}
190
191func NewUUIDSet(sid uuid.UUID, in ...Interval) *UUIDSet {
192 s := new(UUIDSet)

Callers 3

TestMysqlGTIDCodecMethod · 0.70
TestMysqlUUIDCloneMethod · 0.70
ParseMysqlGTIDSetFunction · 0.70

Calls 2

parseIntervalFunction · 0.70
NormalizeMethod · 0.45

Tested by 2

TestMysqlGTIDCodecMethod · 0.56
TestMysqlUUIDCloneMethod · 0.56