Result Set Header Packet https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response.html
()
| 551 | // Result Set Header Packet |
| 552 | // https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response.html |
| 553 | func (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 |
no test coverage detected