• Marko Mäkelä's avatar
    Merge Bug#54408 fix from mysql-5.1-innodb: · 93b685f9
    Marko Mäkelä authored
    ------------------------------------------------------------
    revno: 3531
    revision-id: marko.makela@oracle.com-20100629130058-1ilqaj51u9sj9vqe
    parent: marko.makela@oracle.com-20100629125653-t799e5x30h31cvrd
    committer: Marko Mäkelä <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-06-29 16:00:58 +0300
    message:
      Bug#54408: txn rollback after recovery: row0umod.c:673
      dict_table_get_format(index->table)
    
      The REDUNDANT and COMPACT formats store a local 768-byte prefix of
      each externally stored column. No row_ext cache is needed, but we
      initialized one nevertheless. When the BLOB pointer was zero, we would
      ignore the locally stored prefix as well. This triggered an assertion
      failure in row_undo_mod_upd_exist_sec().
    
      row_build(): Allow ext==NULL when a REDUNDANT or COMPACT table
      contains externally stored columns.
    
      row_undo_search_clust_to_pcur(), row_upd_store_row(): Invoke
      row_build() with ext==NULL on REDUNDANT and COMPACT tables.
    
      rb://382 approved by Jimmy Yang
    93b685f9
row0row.c 31.6 KB