summaryrefslogtreecommitdiff
path: root/sql/opt_sum.cc
diff options
context:
space:
mode:
authorkostja@bodhi.(none) <>2007-12-12 18:21:01 +0300
committerkostja@bodhi.(none) <>2007-12-12 18:21:01 +0300
commitebb9c5d9838f333a73fb197d2bb59ff4ccab6fb9 (patch)
tree6d167294e7739c87e6a12c0d29fa35aa57b0ae36 /sql/opt_sum.cc
parentaa5786eb0f3fbde0a0c8278de22897a8f0fec0e8 (diff)
downloadmariadb-git-ebb9c5d9838f333a73fb197d2bb59ff4ccab6fb9.tar.gz
Bug#12713 "Error in a stored function called from a SELECT doesn't
cause ROLLBACK of statement", part 1. Review fixes. Do not send OK/EOF packets to the client until we reached the end of the current statement. This is a consolidation, to keep the functionality that is shared by all SQL statements in one place in the server. Currently this functionality includes: - close_thread_tables() - log_slow_statement(). After this patch and the subsequent patch for Bug#12713, it shall also include: - ha_autocommit_or_rollback() - net_end_statement() - query_cache_end_of_result(). In future it may also include: - mysql_reset_thd_for_next_command().
Diffstat (limited to 'sql/opt_sum.cc')
-rw-r--r--sql/opt_sum.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc
index 12ad504d738..91786ff3f4b 100644
--- a/sql/opt_sum.cc
+++ b/sql/opt_sum.cc
@@ -170,6 +170,7 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds)
if(error)
{
tl->table->file->print_error(error, MYF(0));
+ tl->table->in_use->fatal_error();
return error;
}
count*= tl->table->file->stats.records;
@@ -418,6 +419,7 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds)
return HA_ERR_KEY_NOT_FOUND; // No rows matching WHERE
/* HA_ERR_LOCK_DEADLOCK or some other error */
table->file->print_error(error, MYF(0));
+ table->in_use->fatal_error();
return(error);
}
removed_tables|= table->map;