1. 29 Jun, 2010 1 commit
    • Marko Mäkelä's avatar
      Bug#52199 utf32: mbminlen=4, mbmaxlen=4, type->mbminlen=0, type->mbmaxlen=4 · deaba603
      Marko Mäkelä authored
      Merge and adjust a forgotten change to fix this bug.
      rb://393 approved by Jimmy Yang
        ------------------------------------------------------------------------
        r3794 | marko | 2009-01-07 14:14:53 +0000 (Wed, 07 Jan 2009) | 18 lines
      
        branches/6.0: Allow the minimum length of a multi-byte character to be
        up to 4 bytes. (Bug #35391)
      
        dtype_t, dict_col_t: Replace mbminlen:2, mbmaxlen:3 with mbminmaxlen:5.
        In this way, the 5 bits can hold two values of 0..4, and the storage size
        of the fields will not cross the 64-bit boundary.  Encode the values as
        DATA_MBMAX * mbmaxlen + mbminlen.  Define the auxiliary macros
        DB_MBMINLEN(mbminmaxlen), DB_MBMAXLEN(mbminmaxlen), and
        DB_MINMAXLEN(mbminlen, mbmaxlen).
      
        Try to trim and pad UTF-16 and UTF-32 with spaces as appropriate.
      
        Alexander Barkov suggested the use of cs->cset->fill(cs, buff, len, 0x20).
        ha_innobase::store_key_val_for_row() now does that, but the added function
        row_mysql_pad_col() does not, because it doesn't have the MySQL TABLE object.
      
        rb://49 approved by Heikki Tuuri
        ------------------------------------------------------------------------
      deaba603
  2. 28 Jun, 2010 1 commit
  3. 25 Jun, 2010 2 commits
    • Jimmy Yang's avatar
      7f1e5a37
    • Sunny Bains's avatar
      Fix bug#54583. This change reverses r1530 by getting rid of a bogus assertion · fce131cc
      Sunny Bains authored
      and clarifies the invariant in dict_table_get_on_id().
        
      In Mar 2007 Marko observed a crash during recovery, the crash resulted from
      an UNDO operation on a system table. His solution was to acquire an X lock on
      the data dictionary, this in hindsight was an overkill. It is unclear what
      caused the crash, current hypothesis is that it was a memory corruption.
        
      The X lock results in performance issues by when undoing changes due to
      rollback during normal operation on regular tables.
        
      Why the change is safe:
      ======================
      The InnoDB code has changed since the original X lock change was made. In the
      new code we always lock the data dictionary in X mode during startup when
      UNDOing operations on the system tables (this is a given). This ensures that
      the crash Marko observed cannot happen as long as all transactions that update
      the system tables follow the standard rules by setting the appropriate DICT_OP
      flag when writing the log records when they make the changes.
        
      If transactions violate the above mentioned rule then during recovery (at
      startup) the rollback code (see trx0roll.c) will not acquire the X lock
      and we will see the crash again.  This will however be a different bug.
      fce131cc
  4. 24 Jun, 2010 5 commits
  5. 23 Jun, 2010 4 commits
    • Marko Mäkelä's avatar
    • Jimmy Yang's avatar
      Merge Bug#54044 fix from mysql-5.1-innodb: · e9c542b0
      Jimmy Yang authored
      ```---------------------------------------------------------
      revno: 3520
      committer: Jimmy Yang <jimmy.yang@oracle.com>
      branch nick: mysql-5.1-innodb
      timestamp: Tue 2010-06-22 19:04:31 -0700
      message:
        Fix bug #54044, Create temporary tables and using innodb crashes. Screen
        out NULL type columns, and return without creating the table.
        
        rb://378 approved by Marko
      ```
      
      ---------------------------------------------------------
      e9c542b0
    • Vasil Dimov's avatar
      Enable InnoDB's UNIV_DEBUG if MySQL's WITH_DEBUG[_FULL] is defined · 0a7d5799
      Vasil Dimov authored
      This will make PB2 test InnoDB with UNIV_DEBUG on its *_debug platforms
      
      Discussed with:	Marko (on IRC)
      0a7d5799
    • Vasil Dimov's avatar
      Merge Bug#47991 fix from mysql-5.1-innodb · e3d842c6
      Vasil Dimov authored
        ------------------------------------------------------------
        revno: 3517
        revision-id: vasil.dimov@oracle.com-20100622163043-dc0lxy0byg74viet
        parent: marko.makela@oracle.com-20100621095148-8g73k8k68dpj080u
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-06-22 19:30:43 +0300
        message:
          Fix Bug#47991 InnoDB Dictionary Cache memory usage increases indefinitely
          when renaming tables
          
          Allocate the table name using ut_malloc() instead of table->heap because
          the latter cannot be freed.
          
          Adjust dict_sys->size calculations all over the code.
          
          Change dict_table_t::name from const char* to char* because we need to
          ut_malloc()/ut_free() it.
          
          Reviewed by:	Inaam, Marko, Heikki (rb://384)
          Approved by:	Heikki (rb://384)
        ------------------------------------------------------------
      e3d842c6
  6. 22 Jun, 2010 3 commits
    • Marko Mäkelä's avatar
      Merge Bug#54686 fix from mysql-5.1-innodb: · f776568e
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3517
      revision-id: marko.makela@oracle.com-20100622115215-kxtzx7xuugcxd375
      parent: marko.makela@oracle.com-20100621095148-8g73k8k68dpj080u
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Tue 2010-06-22 14:52:15 +0300
      message:
        Bug#54686 "field->col->mtype == type" assertion error at row/row0sel.c
        ha_innobase::index_read(), ha_innobase::records_in_range(): Check that
        the index is useable before invoking row_sel_convert_mysql_key_to_innobase().
      
        This fix is based on a suggestion by Yasufumi Kinoshita.
      f776568e
    • Marko Mäkelä's avatar
      buf_flush_insert_in_flush_rbt(), buf_flush_validate_low(): · 3ba73a21
      Marko Mäkelä authored
      Silence GCC warnings about dereferencing a type-punned pointer.
      Approved by Jimmy Yang.
      3ba73a21
    • Marko Mäkelä's avatar
      dict_load_column_low(): Initialize pos. Improve documentation. · 84b51676
      Marko Mäkelä authored
      Approved by Jimmy Yang.
      84b51676
  7. 21 Jun, 2010 3 commits
    • Inaam Rana's avatar
      Fixes bug#39168. · 72e5d2ae
      Inaam Rana authored
      Make a call to log_free_check() on all DML paths.
      72e5d2ae
    • Vladislav Vaintroub's avatar
      Bug#53593: Add some instrumentation to improve Valgrind sensitivity. · 23d05c1c
      Vladislav Vaintroub authored
      Implement WITH_VALGRIND for the CMake build.
      23d05c1c
    • Marko Mäkelä's avatar
      Merge Bug #54658 fix from mysql-5.1-innodb: · cda93dfc
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3515
      revision-id: marko.makela@oracle.com-20100621094008-o9fa153s3f09merw
      parent: vasil.dimov@oracle.com-20100618085155-xnm469cbhedqea96
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Mon 2010-06-21 12:40:08 +0300
      message:
        Bug #54658: InnoDB: Warning: allocated tablespace %lu, old maximum was 0
      
        dict_check_tablespaces_and_store_max_id(): Initialize max_space_id
        and fil_system->max_assigned_id from DICT_HDR_MAX_SPACE_ID.
      
        fil_space_create(): Suppress the warning unless !recv_recovery_on
        (do not complain while applying the redo log).
      cda93dfc
  8. 17 Jun, 2010 7 commits
  9. 15 Jun, 2010 10 commits
  10. 14 Jun, 2010 4 commits