2692 Sergei Golubchik 2008-08-25
different fix for Bug#38492 assert in ha_maria.cc::external_lock
that makes no changes outside of ha_maria.cc and also works in embedded
modified:
sql/sql_class.cc
sql/sql_class.h
sql/sql_parse.cc
storage/maria/ha_maria.cc
2691 Sergei Golubchik 2008-08-24
update maria for WL#4164: Two-byte collation IDs
modified:
storage/maria/ma_open.c
=== modified file 'sql/sql_class.cc'
--- a/sql/sql_class.cc 2008-08-20 15:02:09 +0000
+++ b/sql/sql_class.cc 2008-08-25 12:25:07 +0000
@@ -391,7 +391,6 @@ Diagnostics_area::reset_diagnostics_area
m_total_warn_count= 0;
#endif
is_sent= FALSE;
- is_quit= FALSE;
/** Tiny reset in debug mode to see garbage right away */
m_status= DA_EMPTY;
DBUG_VOID_RETURN;
=== modified file 'sql/sql_class.h'
--- a/sql/sql_class.h 2008-08-20 15:02:09 +0000
+++ b/sql/sql_class.h 2008-08-25 12:25:07 +0000
@@ -1141,8 +1141,6 @@ public:
};
/** True if status information is sent to the client. */
bool is_sent;
- /** True if connection is closed */
- bool is_quit;
/** Set to make set_error_status after set_{ok,eof}_status possible. */
bool can_overwrite_status;
=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc 2008-08-24 17:52:42 +0000
+++ b/sql/sql_parse.cc 2008-08-25 12:25:07 +0000
@@ -1242,7 +1242,6 @@ bool dispatch_command(enum enum_server_c
general_log_print(thd, command, NullS);
net->error=0; // Don't give 'abort' message
thd->main_da.disable_status(); // Don't send anything back
- thd->main_da.is_quit= TRUE; // Connection is closed
error=TRUE; // End server
break;
@@ -1317,7 +1316,6 @@ bool dispatch_command(enum enum_server_c
(long) pos);
mysql_binlog_send(thd, thd->strdup(packet + 10), (my_off_t) pos, flags);
unregister_slave(thd,1,1);
- thd->main_da.is_quit= TRUE; // Connection is closed
/* fake COM_QUIT -- if we get here, the thread needs to terminate */
error = TRUE;
break;
@@ -1366,7 +1364,6 @@ bool dispatch_command(enum enum_server_c
my_eof(thd);
close_thread_tables(thd); // Free before kill
kill_mysql();
- thd->main_da.is_quit= TRUE; // Connection is closed
error=TRUE;
break;
}
=== modified file 'storage/maria/ha_maria.cc'
--- a/storage/maria/ha_maria.cc 2008-08-20 15:02:09 +0000
+++ b/storage/maria/ha_maria.cc 2008-08-25 12:25:07 +0000
@@ -2236,7 +2236,8 @@ int ha_maria::external_lock(THD *thd, in
This is a bit excessive, ACID requires this only if there are some
changes to commit (rollback shouldn't be tested).
*/
- DBUG_ASSERT(!thd->main_da.is_sent || thd->main_da.is_quit);
+ DBUG_ASSERT(!thd->main_da.is_sent ||
+ thd->killed == THD::KILL_CONNECTION);
/* autocommit ? rollback a transaction */
#ifdef MARIA_CANNOT_ROLLBACK
if (ma_commit(trn))
| Thread |
|---|
| • bzr push into mysql-6.0 branch (serg:2691 to 2692) Bug#38492 | Sergei Golubchik | 25 Aug |