From: Date: August 23 2006 1:58pm Subject: bk commit into 5.1 tree (gluh:1.2281) BUG#20548 List-Archive: http://lists.mysql.com/commits/10753 X-Bug: 20548 Message-Id: <20060823115850.BE69D2A0AFA@gluh.myoffice.izhnet.ru> Below is the list of changes that have just been committed into a local 5.1 repository of gluh. When gluh does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2006-08-23 16:58:36+05:00, gluh@stripped +3 -0 Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions setup 'share' struct for all partiton file elements. It's neccessary because we use m_file[0]->update_create_info(create_info) during ha_partition::update_create_info and 'share' for m_file[0] should be valid sql/ha_partition.cc@stripped, 2006-08-23 16:58:28+05:00, gluh@stripped +11 -0 Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions setup 'share' struct for all partiton file elements. It's neccessary because we use m_file[0]->update_create_info(create_info) during ha_partition::update_create_info and 'share' for m_file[0] should be valid sql/ha_partition.h@stripped, 2006-08-23 16:58:28+05:00, gluh@stripped +1 -0 Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions sql/handler.h@stripped, 2006-08-23 16:58:28+05:00, gluh@stripped +1 -1 Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: gluh # Host: gluh.(none) # Root: /home/gluh/MySQL/Merge/5.1-kt --- 1.232/sql/handler.h 2006-08-23 16:58:50 +05:00 +++ 1.233/sql/handler.h 2006-08-23 16:58:50 +05:00 @@ -983,7 +983,7 @@ virtual void print_error(int error, myf errflag); virtual bool get_error_message(int error, String *buf); uint get_dup_key(int error); - void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share) + virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share) { table= table_arg; table_share= share; --- 1.65/sql/ha_partition.cc 2006-08-23 16:58:50 +05:00 +++ 1.66/sql/ha_partition.cc 2006-08-23 16:58:50 +05:00 @@ -1579,6 +1579,17 @@ } +void ha_partition::change_table_ptr(TABLE *table_arg, TABLE_SHARE *share) +{ + handler **file_array= m_file; + table= table_arg; + table_share= share; + do + { + (*file_array)->change_table_ptr(table_arg, share); + } while (*(++file_array)); +} + /* Change comments specific to handler --- 1.25/sql/ha_partition.h 2006-08-23 16:58:50 +05:00 +++ 1.26/sql/ha_partition.h 2006-08-23 16:58:50 +05:00 @@ -199,6 +199,7 @@ *no_parts= m_tot_parts; DBUG_RETURN(0); } + virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share); private: int prepare_for_delete(); int copy_partitions(ulonglong *copied, ulonglong *deleted);