diff --git a/include/page0zip.ic b/include/page0zip.ic index 7f4a8782bfd..ece24941f75 100644 --- a/include/page0zip.ic +++ b/include/page0zip.ic @@ -168,9 +168,11 @@ page_zip_rec_needs_ext( the dense page directory for every record. But there is no record header. There should be enough room for one record on an empty leaf page. Subtract 1 byte for - the encoded heap number. */ + the encoded heap number. Check also the available space + on the uncompressed page. */ return(rec_size - (REC_N_NEW_EXTRA_BYTES - 2) - >= (page_zip_empty_size(n_fields, zip_size) - 1)); + >= (page_zip_empty_size(n_fields, zip_size) - 1) + || rec_size >= page_get_free_space_of_empty(TRUE) / 2); } return(rec_size >= page_get_free_space_of_empty(comp) / 2);