~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/btr/btr0cur.c

  • Committer: Brian Aker
  • Date: 2010-12-08 22:35:56 UTC
  • mfrom: (1819.9.158 update-innobase)
  • Revision ID: brian@tangent.org-20101208223556-37mi4omqg7lkjzf3
Merge in Stewart's changes, 1.3 changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1954
1954
        page_t*         page;
1955
1955
        page_zip_des_t* page_zip;
1956
1956
        rec_t*          rec;
1957
 
        rec_t*          orig_rec;
1958
1957
        ulint           max_size;
1959
1958
        ulint           new_rec_size;
1960
1959
        ulint           old_rec_size;
1968
1967
 
1969
1968
        block = btr_cur_get_block(cursor);
1970
1969
        page = buf_block_get_frame(block);
1971
 
        orig_rec = rec = btr_cur_get_rec(cursor);
 
1970
        rec = btr_cur_get_rec(cursor);
1972
1971
        index = cursor->index;
1973
1972
        ut_ad(!!page_rec_is_comp(rec) == dict_table_is_comp(index->table));
1974
1973
        ut_ad(mtr_memo_contains(mtr, block, MTR_MEMO_PAGE_X_FIX));
3761
3760
Marks not updated extern fields as not-owned by this record. The ownership
3762
3761
is transferred to the updated record which is inserted elsewhere in the
3763
3762
index tree. In purge only the owner of externally stored field is allowed
3764
 
to free the field. */
 
3763
to free the field.
 
3764
@return TRUE if BLOB ownership was transferred */
3765
3765
UNIV_INTERN
3766
 
void
 
3766
ibool
3767
3767
btr_cur_mark_extern_inherited_fields(
3768
3768
/*=================================*/
3769
3769
        page_zip_des_t* page_zip,/*!< in/out: compressed page whose uncompressed
3777
3777
        ulint   n;
3778
3778
        ulint   j;
3779
3779
        ulint   i;
 
3780
        ibool   change_ownership = FALSE;
3780
3781
 
3781
3782
        ut_ad(rec_offs_validate(rec, NULL, offsets));
3782
3783
        ut_ad(!rec_offs_comp(offsets) || !rec_get_node_ptr_flag(rec));
3783
3784
 
3784
3785
        if (!rec_offs_any_extern(offsets)) {
3785
3786
 
3786
 
                return;
 
3787
                return(FALSE);
3787
3788
        }
3788
3789
 
3789
3790
        n = rec_offs_n_fields(offsets);
3806
3807
 
3807
3808
                        btr_cur_set_ownership_of_extern_field(
3808
3809
                                page_zip, rec, index, offsets, i, FALSE, mtr);
 
3810
 
 
3811
                        change_ownership = TRUE;
3809
3812
updated:
3810
3813
                        ;
3811
3814
                }
3812
3815
        }
 
3816
 
 
3817
        return(change_ownership);
3813
3818
}
3814
3819
 
3815
3820
/*******************************************************************//**
4557
4562
        }
4558
4563
 
4559
4564
        for (;;) {
 
4565
#ifdef UNIV_SYNC_DEBUG
4560
4566
                buf_block_t*    rec_block;
 
4567
#endif /* UNIV_SYNC_DEBUG */
4561
4568
                buf_block_t*    ext_block;
4562
4569
 
4563
4570
                mtr_start(&mtr);
4564
4571
 
4565
 
                rec_block = buf_page_get(page_get_space_id(
 
4572
#ifdef UNIV_SYNC_DEBUG
 
4573
                rec_block =
 
4574
#endif /* UNIV_SYNC_DEBUG */
 
4575
                        buf_page_get(page_get_space_id(
4566
4576
                                                 page_align(field_ref)),
4567
4577
                                         rec_zip_size,
4568
4578
                                         page_get_page_no(