summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
authorJon Olav Hauglid <jon.hauglid@oracle.com>2010-11-16 10:05:19 +0100
committerJon Olav Hauglid <jon.hauglid@oracle.com>2010-11-16 10:05:19 +0100
commit0caa22b145db22b718434566720fb7dea715692c (patch)
tree7bb909d13afe24120327ea8c3d6aedfc42610685 /sql/sql_class.cc
parenta3d9a26d3b9ada36d7c57815614027c9fa798002 (diff)
parentd6d16303cd5e2ba623f51a115f12954fe4a0ce2c (diff)
downloadmariadb-git-0caa22b145db22b718434566720fb7dea715692c.tar.gz
Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r--sql/sql_class.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 1823a0416ff..02edcbeb1a2 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -1881,8 +1881,9 @@ void select_to_file::send_error(uint errcode,const char *err)
bool select_to_file::send_eof()
{
int error= test(end_io_cache(&cache));
- if (mysql_file_close(file, MYF(MY_WME)))
- error= 1;
+ if (mysql_file_close(file, MYF(MY_WME)) || thd->is_error())
+ error= true;
+
if (!error)
{
::my_ok(thd,row_count);
@@ -2923,6 +2924,13 @@ bool select_dumpvar::send_eof()
if (! row_count)
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_SP_FETCH_NO_DATA, ER(ER_SP_FETCH_NO_DATA));
+ /*
+ Don't send EOF if we're in error condition (which implies we've already
+ sent or are sending an error)
+ */
+ if (thd->is_error())
+ return true;
+
::my_ok(thd,row_count);
return 0;
}