List:Commits« Previous MessageNext Message »
From:marko.makela Date:May 23 2012 8:23pm
Subject:bzr push into mysql-trunk-wl6255 branch (marko.makela:3859 to 3860)
View as plain text  
 3860 Marko Mäkelä	2012-05-23
      btr_cur_pessimistic_update(): Fix a bug in the rec_get_offsets() elimination.
      
      When the page is compressed and we need to keep the cursor position,
      adjust the offsets as well.

    modified:
      storage/innobase/btr/btr0cur.cc
 3859 Marko Mäkelä	2012-05-23
      row_rec_to_index_entry(): Make offsets const,
      which it is except in debug builds.

    modified:
      storage/innobase/include/row0row.h
      storage/innobase/row/row0row.cc
=== modified file 'storage/innobase/btr/btr0cur.cc'
--- a/storage/innobase/btr/btr0cur.cc	revid:marko.makela@stripped120523200825-1b24wboxme77f0gz
+++ b/storage/innobase/btr/btr0cur.cc	revid:marko.makela@strippedbaz8a8g7htwg9db
@@ -2437,10 +2437,12 @@ make_external:
 				page_zip, rec, index, *offsets, mtr);
 		}
 
-		btr_cur_compress_if_useful(
-			cursor,
-			big_rec_vec != NULL && (flags & BTR_KEEP_POS_FLAG),
-			mtr);
+		bool adjust = big_rec_vec && (flags & BTR_KEEP_POS_FLAG);
+
+		if (btr_cur_compress_if_useful(cursor, adjust, mtr)
+		    && adjust) {
+			rec_offs_make_valid(page_cursor->rec, index, *offsets);
+		}
 
 		if (page_zip && !dict_index_is_clust(index)
 		    && page_is_leaf(page)) {
@@ -2454,8 +2456,7 @@ make_external:
 		ut_a(optim_err != DB_UNDERFLOW);
 
 		/* Out of space: reset the free bits. */
-		if (!dict_index_is_clust(index)
-		    && page_is_leaf(page)) {
+		if (!dict_index_is_clust(index) && page_is_leaf(page)) {
 			ibuf_reset_free_bits(block);
 		}
 	}

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk-wl6255 branch (marko.makela:3859 to 3860) marko.makela24 May