Commit 1bb10ccf authored by unknown's avatar unknown

Valgrind warnings found after bug#32943 and after merge from -main

into -engines tree.

hander::table_share was not updated after changing table->s.


sql/ha_partition.cc:
  Valgrind warning after merge -main -> -engines, after bug#32943
  
  change_table_ptr can happen in a middle of
  alter table rename/drop/... partition
  
  the newly created partitions must get the updated table_share too.
sql/sql_base.cc:
  Bug#32943 was missing a call to change_table_ptr, this was found by valgrind
  after a merge from -main to -engines.
parent d3a0f852
...@@ -1646,6 +1646,15 @@ void ha_partition::change_table_ptr(TABLE *table_arg, TABLE_SHARE *share) ...@@ -1646,6 +1646,15 @@ void ha_partition::change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
{ {
(*file_array)->change_table_ptr(table_arg, share); (*file_array)->change_table_ptr(table_arg, share);
} while (*(++file_array)); } while (*(++file_array));
if (m_added_file && m_added_file[0])
{
/* if in middle of a drop/rename etc */
file_array= m_added_file;
do
{
(*file_array)->change_table_ptr(table_arg, share);
} while (*(++file_array));
}
} }
/* /*
......
...@@ -747,6 +747,7 @@ void close_handle_and_leave_table_as_lock(TABLE *table) ...@@ -747,6 +747,7 @@ void close_handle_and_leave_table_as_lock(TABLE *table)
table->db_stat= 0; // Mark file closed table->db_stat= 0; // Mark file closed
release_table_share(table->s, RELEASE_NORMAL); release_table_share(table->s, RELEASE_NORMAL);
table->s= share; table->s= share;
table->file->change_table_ptr(table, table->s);
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment