MCPcopy
hub / github.com/dropbox/godropbox / parseStatus

Method parseStatus

database/binlog/query_event.go:304–375  ·  view source on GitHub ↗
(q *QueryEvent)

Source from the content-addressed store, hash-verified

302}
303
304func (p *QueryEventParser) parseStatus(q *QueryEvent) error {
305 data := q.statusBytes
306 for len(data) > 0 {
307 code := data[0]
308 data = data[1:]
309
310 var err error
311
312 // XXX(patrick): maybe check for duplicate status.
313 switch mysql_proto.QueryStatusCode_Type(code) {
314 case mysql_proto.QueryStatusCode_FLAGS2:
315 q.flags2 = new(uint32)
316 data, err = readLittleEndian(data, q.flags2)
317
318 case mysql_proto.QueryStatusCode_SQL_MODE:
319 q.sqlMode = new(uint64)
320 data, err = readLittleEndian(data, q.sqlMode)
321
322 case mysql_proto.QueryStatusCode_CATALOG:
323 return errors.New("V4 events does not support catalog status")
324
325 case mysql_proto.QueryStatusCode_AUTO_INCREMENT:
326 data, err = p.parseAutoIncStatus(data, q)
327
328 case mysql_proto.QueryStatusCode_CHARSET:
329 q.charset, data, err = readSlice(data, 6)
330
331 case mysql_proto.QueryStatusCode_TIME_ZONE:
332 data, err = p.parseTimeZone(data, q)
333
334 case mysql_proto.QueryStatusCode_CATALOG_NZ:
335 data, err = p.parseCatalogNz(data, q)
336
337 case mysql_proto.QueryStatusCode_LC_TIME_NAMES:
338 q.lcTimeNamesNumber = new(uint16)
339 data, err = readLittleEndian(data, q.lcTimeNamesNumber)
340
341 case mysql_proto.QueryStatusCode_CHARSET_DATABASE:
342 q.charsetDatabaseNumber = new(uint16)
343 data, err = readLittleEndian(data, q.charsetDatabaseNumber)
344
345 case mysql_proto.QueryStatusCode_TABLE_MAP_FOR_UPDATE:
346 q.tableMapForUpdate = new(uint64)
347 data, err = readLittleEndian(data, q.tableMapForUpdate)
348
349 case mysql_proto.QueryStatusCode_MASTER_DATA_WRITTEN:
350 return errors.New(
351 "V4 events does not support master data written status")
352
353 case mysql_proto.QueryStatusCode_INVOKER:
354 data, err = p.parseInvoker(data, q)
355
356 case mysql_proto.QueryStatusCode_UPDATED_DB_NAMES:
357 data, err = p.parseUpdatedDbNames(data, q)
358
359 case mysql_proto.QueryStatusCode_MICROSECONDS:
360 data, err = p.parseMircoseconds(data, q)
361

Callers 1

ParseMethod · 0.95

Calls 12

parseAutoIncStatusMethod · 0.95
parseTimeZoneMethod · 0.95
parseCatalogNzMethod · 0.95
parseInvokerMethod · 0.95
parseUpdatedDbNamesMethod · 0.95
parseMircosecondsMethod · 0.95
NewFunction · 0.92
NewfFunction · 0.92
WrapfFunction · 0.92
readLittleEndianFunction · 0.85
readSliceFunction · 0.85
StringMethod · 0.65

Tested by

no test coverage detected