diff options
author | kostja@bodhi.(none) <> | 2007-12-12 18:21:01 +0300 |
---|---|---|
committer | kostja@bodhi.(none) <> | 2007-12-12 18:21:01 +0300 |
commit | ebb9c5d9838f333a73fb197d2bb59ff4ccab6fb9 (patch) | |
tree | 6d167294e7739c87e6a12c0d29fa35aa57b0ae36 /sql/opt_sum.cc | |
parent | aa5786eb0f3fbde0a0c8278de22897a8f0fec0e8 (diff) | |
download | mariadb-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.cc | 2 |
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; |