• Marko Mäkelä's avatar
    Bug#12595087 - 61191: Question about page_zip_available · e4aa6667
    Marko Mäkelä authored
    There is an apparent problem with page_zip_clear_rec().
    In btr_cur_optimistic_update() we do this:
    
    	page_cur_delete_rec(page_cursor, index, offsets, mtr);
    ...
    	rec = btr_cur_insert_if_possible(cursor, new_entry, 0/*n_ext*/, mtr);
    	ut_a(rec); /* <- We calculated above the insert would fit */
    
    The problem is that page_cur_delete_rec() could fill the modification
    log while doing page_zip_clear_rec(), requiring recompression for the
    btr_cur_insert_if_possible(). In a pathological case, the data could
    fail to recompress.
    
    page_zip_clear_rec(): Leave the page modification log alone. Only
    clear the necessary fields.
    
    rb:673 approved by Jimmy Yang
    e4aa6667
page0zip.c 133 KB