MCPcopy
hub / github.com/go-sql-driver/mysql / readResultSetHeaderPacket

Method readResultSetHeaderPacket

packets.go:553–584  ·  view source on GitHub ↗

Result Set Header Packet https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response.html

()

Source from the content-addressed store, hash-verified

551// Result Set Header Packet
552// https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response.html
553func (mc *okHandler) readResultSetHeaderPacket() (int, bool, error) {
554 // handleOkPacket replaces both values; other cases leave the values unchanged.
555 mc.result.affectedRows = append(mc.result.affectedRows, 0)
556 mc.result.insertIds = append(mc.result.insertIds, 0)
557
558 data, err := mc.conn().readPacket()
559 if err != nil {
560 return 0, false, err
561 }
562
563 switch data[0] {
564 case iOK:
565 return 0, false, mc.handleOkPacket(data)
566
567 case iERR:
568 return 0, false, mc.conn().handleErrorPacket(data)
569
570 case iLocalInFile:
571 return 0, false, mc.handleInFileRequest(string(data[1:]))
572 }
573
574 // column count
575 // https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response_text_resultset.html
576 // https://mariadb.com/kb/en/result-set-packets/#column-count-packet
577 num, _, len := readLengthEncodedInteger(data)
578
579 if mc.extCapabilities&clientCacheMetadata != 0 {
580 return int(num), data[len] == 0x01, nil
581 }
582 // ignore remaining data in the packet. see #1478.
583 return int(num), true, nil
584}
585
586// Error Packet
587// https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_basic_err_packet.html

Callers 7

discardResultsMethod · 0.95
ExecMethod · 0.80
queryMethod · 0.80
nextResultSetMethod · 0.80
execMethod · 0.80
queryMethod · 0.80
getSystemVarMethod · 0.80

Calls 6

connMethod · 0.95
handleOkPacketMethod · 0.95
handleInFileRequestMethod · 0.95
readLengthEncodedIntegerFunction · 0.85
readPacketMethod · 0.80
handleErrorPacketMethod · 0.80

Tested by

no test coverage detected