Merge of mysql-5.1-bugteam into mysql-trunk-merge.
This commit is contained in:
commit
bba8d5ca9b
@ -658,7 +658,11 @@ void Protocol::end_partial_result_set(THD *thd_arg)
|
|||||||
bool Protocol::flush()
|
bool Protocol::flush()
|
||||||
{
|
{
|
||||||
#ifndef EMBEDDED_LIBRARY
|
#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
|
#else
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
@ -698,7 +702,8 @@ bool Protocol::send_result_set_metadata(List<Item> *list, uint flags)
|
|||||||
if (flags & SEND_NUM_ROWS)
|
if (flags & SEND_NUM_ROWS)
|
||||||
{ // Packet with number of elements
|
{ // Packet with number of elements
|
||||||
uchar *pos= net_store_length(buff, list->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
|
#ifndef DBUG_OFF
|
||||||
@ -820,7 +825,7 @@ bool Protocol::send_result_set_metadata(List<Item> *list, uint flags)
|
|||||||
if (flags & SEND_DEFAULTS)
|
if (flags & SEND_DEFAULTS)
|
||||||
item->send(&prot, &tmp); // Send default value
|
item->send(&prot, &tmp); // Send default value
|
||||||
if (prot.write())
|
if (prot.write())
|
||||||
break; /* purecov: inspected */
|
DBUG_RETURN(1);
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
field_types[count++]= field.type;
|
field_types[count++]= field.type;
|
||||||
#endif
|
#endif
|
||||||
@ -833,8 +838,9 @@ bool Protocol::send_result_set_metadata(List<Item> *list, uint flags)
|
|||||||
to show that there is no cursor.
|
to show that there is no cursor.
|
||||||
Send no warning information, as it will be sent at statement end.
|
Send no warning information, as it will be sent at statement end.
|
||||||
*/
|
*/
|
||||||
write_eof_packet(thd, &thd->net, thd->server_status,
|
if (write_eof_packet(thd, &thd->net, thd->server_status,
|
||||||
thd->warning_info->statement_warn_count());
|
thd->warning_info->statement_warn_count()))
|
||||||
|
DBUG_RETURN(1);
|
||||||
}
|
}
|
||||||
DBUG_RETURN(prepare_for_send(list->elements));
|
DBUG_RETURN(prepare_for_send(list->elements));
|
||||||
|
|
||||||
|
@ -1673,7 +1673,8 @@ def_week_frmt: %lu, in_trans: %d, autocommit: %d",
|
|||||||
|
|
||||||
thd->limit_found_rows = query->found_rows();
|
thd->limit_found_rows = query->found_rows();
|
||||||
thd->status_var.last_query_cost= 0.0;
|
thd->status_var.last_query_cost= 0.0;
|
||||||
thd->stmt_da->disable_status();
|
if (!thd->stmt_da->is_set())
|
||||||
|
thd->stmt_da->disable_status();
|
||||||
|
|
||||||
BLOCK_UNLOCK_RD(query_block);
|
BLOCK_UNLOCK_RD(query_block);
|
||||||
MYSQL_QUERY_CACHE_HIT(thd->query(), (ulong) thd->limit_found_rows);
|
MYSQL_QUERY_CACHE_HIT(thd->query(), (ulong) thd->limit_found_rows);
|
||||||
|
@ -664,7 +664,12 @@ void Materialized_cursor::fetch(ulong num_rows)
|
|||||||
if ((res= table->file->rnd_next(table->record[0])))
|
if ((res= table->file->rnd_next(table->record[0])))
|
||||||
break;
|
break;
|
||||||
/* Send data only if the read was successful. */
|
/* Send data only if the read was successful. */
|
||||||
result->send_data(item_list);
|
/*
|
||||||
|
If network write failed (i.e. due to a closed socked),
|
||||||
|
the error has already been set. Just return.
|
||||||
|
*/
|
||||||
|
if (result->send_data(item_list))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (res) {
|
switch (res) {
|
||||||
|
@ -352,8 +352,11 @@ static bool send_prep_stmt(Prepared_statement *stmt, uint columns)
|
|||||||
&stmt->lex->param_list,
|
&stmt->lex->param_list,
|
||||||
Protocol::SEND_EOF);
|
Protocol::SEND_EOF);
|
||||||
}
|
}
|
||||||
/* Flag that a response has already been sent */
|
|
||||||
thd->stmt_da->disable_status();
|
if (!error)
|
||||||
|
/* Flag that a response has already been sent */
|
||||||
|
thd->stmt_da->disable_status();
|
||||||
|
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user