Commit 38787c5d authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

cleanup & fixing possible bug in select's error handling

parent e34e82d1
...@@ -444,7 +444,7 @@ JOIN::optimize() ...@@ -444,7 +444,7 @@ JOIN::optimize()
best_read > (double) thd->variables.max_join_size && best_read > (double) thd->variables.max_join_size &&
!(select_options & SELECT_DESCRIBE)) !(select_options & SELECT_DESCRIBE))
{ /* purecov: inspected */ { /* purecov: inspected */
result->send_error(ER_TOO_BIG_SELECT,ER(ER_TOO_BIG_SELECT)); /* purecov: inspected */ my_message(ER_TOO_BIG_SELECT, ER(ER_TOO_BIG_SELECT), MYF(0));
error= 1; /* purecov: inspected */ error= 1; /* purecov: inspected */
DBUG_RETURN(-1); DBUG_RETURN(-1);
} }
...@@ -670,10 +670,7 @@ JOIN::exec() ...@@ -670,10 +670,7 @@ JOIN::exec()
if (!having || having->val_int()) if (!having || having->val_int())
{ {
if (do_send_rows && result->send_data(fields_list)) if (do_send_rows && result->send_data(fields_list))
{
result->send_error(0,NullS); /* purecov: inspected */
error= 1; error= 1;
}
else else
error= (int) result->send_eof(); error= (int) result->send_eof();
} }
...@@ -1092,12 +1089,13 @@ err: ...@@ -1092,12 +1089,13 @@ err:
thd->limit_found_rows = join->send_records; thd->limit_found_rows = join->send_records;
thd->examined_row_count = join->examined_rows; thd->examined_row_count = join->examined_rows;
thd->proc_info="end"; thd->proc_info="end";
int error= (fake_select_lex?0:join->cleanup(thd)) || thd->net.report_error; int error= (fake_select_lex?join->error:join->cleanup(thd)) ||
thd->net.report_error;
delete join; delete join;
DBUG_RETURN(error); DBUG_RETURN(error);
} }
else else
DBUG_RETURN(0); DBUG_RETURN(join->error);
} }
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment