1. 29 Jun, 2010 2 commits
    • Marko Mäkelä's avatar
      Bug#54358: READ UNCOMMITTED access failure of off-page DYNAMIC or COMPRESSED · 7271bcb4
      Marko Mäkelä authored
      columns
      
      When the server crashes after a record stub has been inserted and
      before all its off-page columns have been written, the record will
      contain incomplete off-page columns after crash recovery. Such records
      may only be accessed at the READ UNCOMMITTED isolation level or when
      rolling back a recovered transaction in recv_recovery_rollback_active().
      Skip these records at the READ UNCOMMITTED isolation level.
      
      TODO: Add assertions for checking the above assumptions hold when an
      incomplete BLOB is encountered.
      
      btr_rec_copy_externally_stored_field(): Return NULL if the field is
      incomplete.
      
      row_prebuilt_t::templ_contains_blob: Clarify what "BLOB" means in this
      context. Hint: MySQL BLOBs are not the same as InnoDB BLOBs.
      
      row_sel_store_mysql_rec(): Return FALSE if not all columns could be
      retrieved. Previously this function always returned TRUE.  Assert that
      the record is not delete-marked.
      
      row_sel_push_cache_row_for_mysql(): Return FALSE if not all columns
      could be retrieved.
      
      row_search_for_mysql(): Skip records containing incomplete off-page
      columns. Assert that the transaction isolation level is READ
      UNCOMMITTED.
      
      rb://380 approved by Jimmy Yang
      7271bcb4
    • Jimmy Yang's avatar
      Check in fix for bug #53756: "ALTER TABLE ADD PRIMARY KEY affects · dec24a7d
      Jimmy Yang authored
      crash recovery"
      
      rb://369 approved by Marko
      dec24a7d
  2. 25 Jun, 2010 6 commits
  3. 24 Jun, 2010 5 commits
  4. 23 Jun, 2010 2 commits
  5. 22 Jun, 2010 5 commits
  6. 21 Jun, 2010 2 commits
  7. 18 Jun, 2010 3 commits
  8. 17 Jun, 2010 2 commits
  9. 15 Jun, 2010 1 commit
  10. 14 Jun, 2010 2 commits
  11. 10 Jun, 2010 4 commits
  12. 09 Jun, 2010 2 commits
    • Sergey Glukhov's avatar
      58f1c5fe
    • Sergey Glukhov's avatar
      Bug#38999 valgrind warnings for update statement in function compare_record() · d2db80c8
      Sergey Glukhov authored
      Valgrind warning happpens because of uninitialized null bytes.
      In row_sel_push_cache_row_for_mysql() function we fill fetch cache
      with necessary field values, row_sel_store_mysql_rec() is called
      for this and leaves null bytes untouched.
      Later row_sel_pop_cached_row_for_mysql() rewrites table record
      buffer with uninited null bytes. We can see the problem from the
      test case:
      At 'SELECT...' we call row_sel_push...->row_sel_store...->row_sel_pop_cached...
      chain which rewrites table->record[0] buffer with uninitialized null bytes.
      When we call 'UPDATE...' statement, compare_record uses this buffer and
      valgrind warning occurs.
      The fix is to init null bytes with default values.
      d2db80c8
  13. 08 Jun, 2010 4 commits