fix MySQL parse OK_Packet info

This commit is contained in:
holmes1412
2020-12-01 17:27:33 +08:00
parent cffaeb7460
commit 153e7e87b4
3 changed files with 8 additions and 5 deletions

View File

@@ -212,10 +212,12 @@ static int parse_ok_packet(const void *buf, size_t len, mysql_parser_t *parser)
parser->info_offset = p - (const char *)buf;
parser->info_len = info_len;
} else
} else {
parser->info_offset = 7;
parser->info_len = 0;
}
parser->offset += 7;
parser->offset += parser->info_offset + parser->info_len;
parser->affected_rows = (affected_rows == (unsigned long long)-1) ? 0 : affected_rows;
parser->insert_id = (insert_id == (unsigned long long)-1) ? 0 : insert_id;
parser->server_status = server_status;

View File

@@ -26,7 +26,7 @@
#define MYSQL_FLOAT_STR_LENGTH 7 // 7 for float
#define MYSQL_DOUBLE_STR_LENGTH 19 // 19 for long double
// may be set by server in EOF packet
// may be set by server in EOF/OK packet
#define MYSQL_SERVER_MORE_RESULTS_EXIST 0x0008
enum

View File

@@ -185,9 +185,10 @@ void mysql_callback(WFMySQLTask *task)
fprintf(stderr, "row ");
else
fprintf(stderr, "rows ");
fprintf(stderr, "affected. %d warnings. insert_id=%llu.\n",
fprintf(stderr, "affected. %d warnings. insert_id=%llu. %s\n",
task->get_resp()->get_warnings(),
task->get_resp()->get_last_insert_id());
task->get_resp()->get_last_insert_id(),
task->get_resp()->get_info().c_str());
}
else if (resp->get_packet_type() == MYSQL_PACKET_ERROR)
{