• Vasil Dimov's avatar
    Merge from mysql-5.1-innodb: · 7e2acd22
    Vasil Dimov authored
      ------------------------------------------------------------
      revno: 3430
      revision-id: vasil.dimov@oracle.com-20100428103452-6btsq4xv6v1etb5b
      parent: vasil.dimov@oracle.com-20100428103200-vs5nzx245sv2qy7n
      committer: Vasil Dimov <vasil.dimov@oracle.com>
      branch nick: mysql-5.1-innodb
      timestamp: Wed 2010-04-28 13:34:52 +0300
      message:
        Bug#53046 dict_update_statistics_low can still be run concurrently
        on same table
        
        Followup to vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr :
        
        Add more asserions, which I forgot.
      modified:
        storage/innodb_plugin/dict/dict0dict.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0dict.c
      ------------------------------------------------------------
      revno: 3429
      revision-id: vasil.dimov@oracle.com-20100428103200-vs5nzx245sv2qy7n
      parent: vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr
      committer: Vasil Dimov <vasil.dimov@oracle.com>
      branch nick: mysql-5.1-innodb
      timestamp: Wed 2010-04-28 13:32:00 +0300
      message:
        Revert the fix of Bug#38996 Race condition in ANALYZE TABLE
        
        This is branches/zip@r6032 in SVN and _is part_ of
        revid:svn-v4:16c675df-0fcb-4bc9-8058-dcc011a37293:branches/zip:6113
        in BZR.
        
        This is being reverted because now the code is serialized directly on
        index->stat_n_diff_key_vals[] as the fix for
        Bug#53046 dict_update_statistics_low can still be run concurrently on same table
        goes.
      modified:
        storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
      ------------------------------------------------------------
      revno: 3428
      revision-id: vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr
      parent: vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7
      committer: Vasil Dimov <vasil.dimov@oracle.com>
      branch nick: mysql-5.1-innodb
      timestamp: Wed 2010-04-28 13:20:33 +0300
      message:
        Followup to vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7:
        
        Address Marko's suggestions wrt the fix of
        Bug#53046 dict_update_statistics_low can still be run concurrently
        on same table
      modified:
        storage/innodb_plugin/dict/dict0dict.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0dict.c
      ------------------------------------------------------------
      revno: 3427
      revision-id: vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7
      parent: mmakela@bk-internal.mysql.com-20100428063325-irts4ze9et5bsqdq
      committer: Vasil Dimov <vasil.dimov@oracle.com>
      branch nick: mysql-5.1-innodb
      timestamp: Wed 2010-04-28 11:46:27 +0300
      message:
        Fix Bug#53046 dict_update_statistics_low can still be run concurrently
        on same table
        
        Protect dict_index_t::stat_n_diff_key_vals[] with an array of
        mutexes.
        
        Testing: tested all code paths under UNIV_SYNC_DEBUG
        for the one in dict_print() one has to enable the InnoDB table monitor:
        CREATE TABLE innodb_table_monitor (a int) ENGINE=INNODB;
      modified:
        storage/innodb_plugin/btr/btr0cur.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0cur.c
        storage/innodb_plugin/dict/dict0dict.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0dict.c
        storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
        storage/innodb_plugin/include/dict0dict.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fdict0dict.h
      ------------------------------------------------------------
    7e2acd22
ha_innodb.cc 322 KB