| 1346 | |
| 1347 | |
| 1348 | bool Protocol::net_send_error_packet(THD *thd, uint sql_errno, const char *err, |
| 1349 | const char *sqlstate) |
| 1350 | { |
| 1351 | uint error; |
| 1352 | char converted_err[MYSQL_ERRMSG_SIZE]; |
| 1353 | MYSQL_DATA *data= thd->cur_data; |
| 1354 | struct embedded_query_result *ei; |
| 1355 | |
| 1356 | if (!thd->mysql) // bootstrap file handling |
| 1357 | { |
| 1358 | fprintf(stderr, "ERROR: %d %s\n", sql_errno, err); |
| 1359 | return TRUE; |
| 1360 | } |
| 1361 | |
| 1362 | if (!data) |
| 1363 | data= thd->alloc_new_dataset(); |
| 1364 | |
| 1365 | ei= data->embedded_info; |
| 1366 | ei->last_errno= sql_errno; |
| 1367 | convert_error_message(converted_err, sizeof(converted_err), |
| 1368 | thd->variables.character_set_results, |
| 1369 | err, strlen(err), |
| 1370 | system_charset_info, &error); |
| 1371 | /* Converted error message is always null-terminated. */ |
| 1372 | strmake_buf(ei->info, converted_err); |
| 1373 | strmov(ei->sqlstate, sqlstate); |
| 1374 | ei->server_status= thd->server_status; |
| 1375 | thd->cur_data= 0; |
| 1376 | return FALSE; |
| 1377 | } |
| 1378 | |
| 1379 | |
| 1380 | void Protocol_text::prepare_for_resend() |
nothing calls this directly
no test coverage detected