diff options
author | Alexander Nozdrin <alik@sun.com> | 2010-07-29 16:32:11 +0400 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2010-07-29 16:32:11 +0400 |
commit | 32f3ab7933240277e52f05e39e4d45f19f7ac3d7 (patch) | |
tree | 16a66be92ba2603896b1b010600df021911be256 /sql/protocol.cc | |
parent | d85c6281802c8f6ef7187518f9f4357d96134b3e (diff) | |
parent | 6bd182e9f22e02f29e7f14e6dd8bf14eaeee084e (diff) | |
download | mariadb-git-32f3ab7933240277e52f05e39e4d45f19f7ac3d7.tar.gz |
Auto-merge from mysql-trunk-merge.
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r-- | sql/protocol.cc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc index 87a54eaf10d..953656d3a4f 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -658,7 +658,11 @@ void Protocol::end_partial_result_set(THD *thd_arg) bool Protocol::flush() { #ifndef EMBEDDED_LIBRARY - return net_flush(&thd->net); + bool error; + thd->stmt_da->can_overwrite_status= TRUE; + error= net_flush(&thd->net); + thd->stmt_da->can_overwrite_status= FALSE; + return error; #else return 0; #endif @@ -698,7 +702,8 @@ bool Protocol::send_result_set_metadata(List<Item> *list, uint flags) if (flags & SEND_NUM_ROWS) { // Packet with number of elements uchar *pos= net_store_length(buff, list->elements); - (void) my_net_write(&thd->net, buff, (size_t) (pos-buff)); + if (my_net_write(&thd->net, buff, (size_t) (pos-buff))) + DBUG_RETURN(1); } #ifndef DBUG_OFF @@ -803,7 +808,7 @@ bool Protocol::send_result_set_metadata(List<Item> *list, uint flags) if (flags & SEND_DEFAULTS) item->send(&prot, &tmp); // Send default value if (prot.write()) - break; /* purecov: inspected */ + DBUG_RETURN(1); #ifndef DBUG_OFF field_types[count++]= field.type; #endif @@ -816,8 +821,9 @@ bool Protocol::send_result_set_metadata(List<Item> *list, uint flags) to show that there is no cursor. Send no warning information, as it will be sent at statement end. */ - write_eof_packet(thd, &thd->net, thd->server_status, - thd->warning_info->statement_warn_count()); + if (write_eof_packet(thd, &thd->net, thd->server_status, + thd->warning_info->statement_warn_count())) + DBUG_RETURN(1); } DBUG_RETURN(prepare_for_send(list->elements)); |