From: Date: July 23 2008 1:29pm Subject: bzr commit into mysql-6.0-backup branch (kgeorge:2738) List-Archive: http://lists.mysql.com/commits/50300 Message-Id: <200807231129.m6NBTUAe027963@magare.gmz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/kgeorge/mysql/bzr/fix-6.0-bugteam/ 2738 Georgi Kodinov 2008-07-23 [merge] merged 5.1-bugteam modified: mysys/my_uuid.c sql/handler.cc === modified file 'mysys/my_uuid.c' --- a/mysys/my_uuid.c 2008-07-18 13:30:53 +0000 +++ b/mysys/my_uuid.c 2008-07-23 11:28:20 +0000 @@ -145,12 +145,12 @@ void my_uuid(uchar *to) */ if (nanoseq) { - longlong delta; + uint delta; DBUG_ASSERT((tv > uuid_time) && (nanoseq > 0)); /* -1 so we won't make tv= uuid_time for nanoseq >= (tv - uuid_time) */ - delta= (longlong) min(nanoseq, tv - uuid_time -1); + delta= min(nanoseq, (uint)(tv - uuid_time -1)); tv-= delta; nanoseq-= delta; } === modified file 'sql/handler.cc' --- a/sql/handler.cc 2008-07-09 07:12:43 +0000 +++ b/sql/handler.cc 2008-07-23 11:28:20 +0000 @@ -1630,23 +1630,23 @@ bool mysql_xa_recover(THD *thd) @return always 0 */ -static my_bool release_temporary_latches(THD *thd, plugin_ref plugin, - void *unused) -{ - handlerton *hton= plugin_data(plugin, handlerton *); - - if (hton->state == SHOW_OPTION_YES && hton->release_temporary_latches) - hton->release_temporary_latches(hton, thd); - - return FALSE; -} - int ha_release_temporary_latches(THD *thd) { - plugin_foreach(thd, release_temporary_latches, MYSQL_STORAGE_ENGINE_PLUGIN, - NULL); + Ha_trx_info *info; + /* + Note that below we assume that only transactional storage engines + may need release_temporary_latches(). If this will ever become false, + we could iterate on thd->open_tables instead (and remove duplicates + as if (!seen[hton->slot]) { seen[hton->slot]=1; ... }). + */ + for (info= thd->transaction.stmt.ha_list; info; info= info->next()) + { + handlerton *hton= info->ht(); + if (hton && hton->release_temporary_latches) + hton->release_temporary_latches(hton, thd); + } return 0; }