From: Marc Alff Date: May 19 2011 3:42pm Subject: bzr commit into mysql-trunk-wl5342 branch (marc.alff:3370) List-Archive: http://lists.mysql.com/commits/137707 Message-Id: <20110519154251.23A082FEE27@linux-8edv.site> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8253025634378356580==" --===============8253025634378356580== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/malff/BZR_TREE/mysql-trunk-wl5342/ based on revid:marc.alff@stripped 3370 Marc Alff 2011-05-19 Fixed the table handle thread owner for: - partitioned tables - temporary tables used in replications in a slave modified: sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/rpl_slave.cc sql/sql_base.cc === modified file 'sql/ha_partition.cc' --- a/sql/ha_partition.cc 2011-05-16 11:32:07 +0000 +++ b/sql/ha_partition.cc 2011-05-19 15:42:44 +0000 @@ -2963,6 +2963,33 @@ err_alloc: DBUG_RETURN(error); } +void ha_partition::unbind_psi() +{ + uint i; + + DBUG_ENTER("ha_partition::unbind_psi"); + handler::unbind_psi(); + for (i= 0; i < m_tot_parts; i++) + { + DBUG_ASSERT(m_file[i] != NULL); + m_file[i]->unbind_psi(); + } + DBUG_VOID_RETURN; +} + +void ha_partition::rebind_psi() +{ + uint i; + + DBUG_ENTER("ha_partition::rebind_psi"); + handler::rebind_psi(); + for (i= 0; i < m_tot_parts; i++) + { + DBUG_ASSERT(m_file[i] != NULL); + m_file[i]->rebind_psi(); + } + DBUG_VOID_RETURN; +} /** Clone the open and locked partitioning handler. === modified file 'sql/ha_partition.h' --- a/sql/ha_partition.h 2011-05-16 11:32:07 +0000 +++ b/sql/ha_partition.h 2011-05-19 15:42:44 +0000 @@ -299,6 +299,8 @@ public: If the object was opened it will also be closed before being deleted. */ virtual int open(const char *name, int mode, uint test_if_locked); + virtual void unbind_psi(); + virtual void rebind_psi(); virtual int close(void); /* === modified file 'sql/handler.cc' --- a/sql/handler.cc 2011-05-16 14:30:54 +0000 +++ b/sql/handler.cc 2011-05-19 15:42:44 +0000 @@ -2132,6 +2132,30 @@ THD *handler::ha_thd(void) const return (table && table->in_use) ? table->in_use : current_thd; } +void handler::unbind_psi() +{ +#ifdef HAVE_PSI_INTERFACE + /* + Notify the instrumentation that this table is not owned + by this thread any more. + */ + if (likely(PSI_server != NULL)) + PSI_server->unbind_table(m_psi); +#endif +} + +void handler::rebind_psi() +{ +#ifdef HAVE_PSI_INTERFACE + /* + Notify the instrumentation that this table is now owned + by this thread. + */ + if (likely(PSI_server != NULL)) + PSI_server->rebind_table(m_psi); +#endif +} + PSI_table_share *handler::ha_table_share_psi(const TABLE_SHARE *share) const { return share->m_psi; === modified file 'sql/handler.h' --- a/sql/handler.h 2011-05-12 17:29:19 +0000 +++ b/sql/handler.h 2011-05-19 15:42:44 +0000 @@ -1360,6 +1360,9 @@ public: */ PSI_table *m_psi; + virtual void unbind_psi(); + virtual void rebind_psi(); + private: friend class DsMrr_impl; /** === modified file 'sql/rpl_slave.cc' --- a/sql/rpl_slave.cc 2011-05-16 14:30:54 +0000 +++ b/sql/rpl_slave.cc 2011-05-19 15:42:44 +0000 @@ -606,7 +606,19 @@ static void set_thd_in_use_temporary_tab TABLE *table; for (table= rli->save_temporary_tables ; table ; table= table->next) + { table->in_use= rli->info_thd; + if (table->file != NULL) + { + /* + Since we are stealing opened temporary tables from one thread to another, + we need to let the performance schema know that, + for aggregates per thread to work properly. + */ + table->file->unbind_psi(); + table->file->rebind_psi(); + } + } } int terminate_slave_threads(Master_info* mi,int thread_mask,bool skip_lock) === modified file 'sql/sql_base.cc' --- a/sql/sql_base.cc 2011-05-18 16:02:19 +0000 +++ b/sql/sql_base.cc 2011-05-19 15:42:44 +0000 @@ -467,14 +467,7 @@ static void table_def_use_table(THD *thd /* The children must be detached from the table. */ DBUG_ASSERT(! table->file->extra(HA_EXTRA_IS_ATTACHED_CHILDREN)); -#ifdef HAVE_PSI_INTERFACE - /* - Notify the instrumentation that this table is now owned - by this thread. - */ - if (likely(PSI_server != NULL)) - PSI_server->rebind_table(table->file->m_psi); -#endif + table->file->rebind_psi(); } @@ -491,15 +484,7 @@ static void table_def_unuse_table(TABLE DBUG_ASSERT(! table->s->has_old_version()); table->in_use= 0; - -#ifdef HAVE_PSI_INTERFACE - /* - Notify the instrumentation that this table is not owned - by this thread any more. - */ - if (likely(PSI_server != NULL)) - PSI_server->unbind_table(table->file->m_psi); -#endif + table->file->unbind_psi(); /* Remove table from the list of tables used in this share. */ table->s->used_tables.remove(table); --===============8253025634378356580== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///home/malff/BZR_TREE/mysql-trunk-wl5342/ # testament_sha1: 76470902ebd9228ac5fb1389fc7cd7c6f0ca60e9 # timestamp: 2011-05-19 17:42:51 +0200 # source_branch: file:///home/malff/BZR_TREE/mysql-trunk/ # base_revision_id: marc.alff@stripped\ # w70wk9ny7j9ar5u9 # # Begin bundle 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 --===============8253025634378356580==--