~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/row/row0upd.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:
1636
1636
        dict_table_t*   table;
1637
1637
        dtuple_t*       entry;
1638
1638
        ulint           err;
 
1639
        ibool           change_ownership = FALSE;
1639
1640
 
1640
1641
        ut_ad(node);
1641
1642
        ut_ad(dict_index_is_clust(index));
1668
1669
                index = dict_table_get_first_index(table);
1669
1670
                offsets = rec_get_offsets(rec, index, offsets_,
1670
1671
                                          ULINT_UNDEFINED, &heap);
1671
 
                btr_cur_mark_extern_inherited_fields(
1672
 
                        btr_cur_get_page_zip(btr_cur),
1673
 
                        rec, index, offsets, node->update, mtr);
 
1672
                change_ownership = btr_cur_mark_extern_inherited_fields(
 
1673
                        btr_cur_get_page_zip(btr_cur), rec, index, offsets,
 
1674
                        node->update, mtr);
1674
1675
                if (referenced) {
1675
1676
                        /* NOTE that the following call loses
1676
1677
                        the position of pcur ! */
1704
1705
 
1705
1706
        row_upd_index_entry_sys_field(entry, index, DATA_TRX_ID, trx->id);
1706
1707
 
1707
 
        if (node->upd_ext) {
 
1708
        if (change_ownership) {
1708
1709
                /* If we return from a lock wait, for example, we may have
1709
1710
                extern fields marked as not-owned in entry (marked in the
1710
 
                if-branch above). We must unmark them. */
 
1711
                if-branch above). We must unmark them, take the ownership
 
1712
                back. */
1711
1713
 
1712
1714
                btr_cur_unmark_dtuple_extern_fields(entry);
1713
1715