List:Commits« Previous MessageNext Message »
From:gluh Date:August 22 2006 5:07pm
Subject:bk commit into 5.1 tree (gluh:1.2289) BUG#20548
View as plain text  
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-22 20:07:39+05:00, gluh@stripped +9 -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_federated.h@stripped, 2006-08-22 20:07:27+05:00, gluh@stripped +5 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/ha_heap.h@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +5 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/ha_innodb.h@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +6 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/ha_myisam.h@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +5 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/ha_myisammrg.h@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +5 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/ha_ndbcluster.h@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +5 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/ha_partition.cc@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +10 -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-22 20:07:28+05:00, gluh@stripped +1 -0
    Bug#20548 Events: crash if InnoDB, multiple events, busy procedures, partitions

  sql/handler.h@stripped, 2006-08-22 20:07:28+05:00, gluh@stripped +1 -5
    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/Bugs/5.1.test

--- 1.45/sql/ha_heap.h	2006-08-22 20:07:56 +05:00
+++ 1.46/sql/ha_heap.h	2006-08-22 20:07:56 +05:00
@@ -113,6 +113,11 @@
     return ptr1 < ptr2? -1 : (ptr1 > ptr2? 1 : 0);
   }
   bool check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes);
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
+  {
+    table= table_arg;
+    table_share= share; 
+  }
 private:
   void update_key_stats();
 };

--- 1.74/sql/ha_myisam.h	2006-08-22 20:07:56 +05:00
+++ 1.75/sql/ha_myisam.h	2006-08-22 20:07:56 +05:00
@@ -136,4 +136,9 @@
   int dump(THD* thd, int fd);
   int net_read_dump(NET* net);
 #endif
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
+  {
+    table= table_arg;
+    table_share= share; 
+  }
 };

--- 1.44/sql/ha_myisammrg.h	2006-08-22 20:07:56 +05:00
+++ 1.45/sql/ha_myisammrg.h	2006-08-22 20:07:56 +05:00
@@ -85,4 +85,9 @@
   void append_create_info(String *packet);
   MYRG_INFO *myrg_info() { return file; }
   bool check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes);
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
+  {
+    table= table_arg;
+    table_share= share; 
+  }
 };

--- 1.232/sql/handler.h	2006-08-22 20:07:56 +05:00
+++ 1.233/sql/handler.h	2006-08-22 20:07:56 +05:00
@@ -983,11 +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)
-  {
-    table= table_arg;
-    table_share= share;
-  }
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share) { }
   virtual double scan_time()
   { return ulonglong2double(stats.data_file_length) / IO_SIZE + 2; }
   virtual double read_time(uint index, uint ranges, ha_rows rows)

--- 1.146/sql/ha_ndbcluster.h	2006-08-22 20:07:56 +05:00
+++ 1.147/sql/ha_ndbcluster.h	2006-08-22 20:07:56 +05:00
@@ -661,6 +661,11 @@
   int get_default_no_partitions(HA_CREATE_INFO *info);
   bool get_no_parts(const char *name, uint *no_parts);
   void set_auto_partitions(partition_info *part_info);
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
+  {
+    table= table_arg;
+    table_share= share; 
+  }
   virtual bool is_fatal_error(int error, uint flags)
   {
     if (!handler::is_fatal_error(error, flags) ||

--- 1.124/sql/ha_innodb.h	2006-08-22 20:07:56 +05:00
+++ 1.125/sql/ha_innodb.h	2006-08-22 20:07:56 +05:00
@@ -203,6 +203,12 @@
 					uint table_changes);
         void build_template(struct row_prebuilt_struct *prebuilt, THD *thd,
                             TABLE *table, uint templ_type);
+  
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
+  {
+    table= table_arg;
+    table_share= share; 
+  }
 };
 
 extern SHOW_VAR innodb_status_variables[];

--- 1.65/sql/ha_partition.cc	2006-08-22 20:07:56 +05:00
+++ 1.66/sql/ha_partition.cc	2006-08-22 20:07:56 +05:00
@@ -1578,6 +1578,16 @@
   return;
 }
 
+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-22 20:07:56 +05:00
+++ 1.26/sql/ha_partition.h	2006-08-22 20:07:56 +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);

--- 1.36/sql/ha_federated.h	2006-08-22 20:07:56 +05:00
+++ 1.37/sql/ha_federated.h	2006-08-22 20:07:56 +05:00
@@ -234,6 +234,11 @@
                                      uint key_len,
                                      ha_rkey_function find_flag,
                                      MYSQL_RES **result);
+  virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
+  {
+    table= table_arg;
+    table_share= share; 
+  }
 };
 
 int federated_db_init(void);
Thread
bk commit into 5.1 tree (gluh:1.2289) BUG#20548gluh22 Aug