~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/row/row0vers.c

  • Committer: Lee Bieber
  • Date: 2010-12-03 01:16:19 UTC
  • mfrom: (1819.9.81 update-innobase)
  • Revision ID: kalebral@gmail.com-20101203011619-n6v584rijwdet05b
Merge Stewart - update Innobase plugin based on InnoDB 1.1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
209
209
                prev_trx_id must have already committed for the trx_id
210
210
                to be able to modify the row. Therefore, prev_trx_id
211
211
                cannot hold any implicit lock. */
212
 
                if (vers_del && 0 != ut_dulint_cmp(trx_id, prev_trx_id)) {
 
212
                if (vers_del && trx_id != prev_trx_id) {
213
213
 
214
214
                        mutex_enter(&kernel_mutex);
215
215
                        break;
280
280
                        break;
281
281
                }
282
282
 
283
 
                if (0 != ut_dulint_cmp(trx_id, prev_trx_id)) {
 
283
                if (trx_id != prev_trx_id) {
284
284
                        /* The versions modified by the trx_id transaction end
285
285
                        to prev_version: no implicit x-lock */
286
286
 
533
533
                undo_no of the record is < undo_no in the view. */
534
534
 
535
535
                if (view->type == VIEW_HIGH_GRANULARITY
536
 
                    && ut_dulint_cmp(view->creator_trx_id, trx_id) == 0) {
 
536
                    && view->creator_trx_id == trx_id) {
537
537
 
538
538
                        roll_ptr = row_get_rec_roll_ptr(version, index,
539
539
                                                        *offsets);
541
541
                        undo_no = trx_undo_rec_get_undo_no(undo_rec);
542
542
                        mem_heap_empty(heap);
543
543
 
544
 
                        if (ut_dulint_cmp(view->undo_no, undo_no) > 0) {
 
544
                        if (view->undo_no > undo_no) {
545
545
                                /* The view already sees this version: we can
546
546
                                copy it to in_heap and return */
547
547
 
632
632
        mem_heap_t*     heap            = NULL;
633
633
        byte*           buf;
634
634
        ulint           err;
635
 
        trx_id_t        rec_trx_id      = ut_dulint_zero;
 
635
        trx_id_t        rec_trx_id      = 0;
636
636
 
637
637
        ut_ad(dict_index_is_clust(index));
638
638
        ut_ad(mtr_memo_contains_page(mtr, rec, MTR_MEMO_PAGE_X_FIX)
684
684
                        rolled back and the transaction is removed from
685
685
                        the global list of transactions. */
686
686
 
687
 
                        if (!ut_dulint_cmp(rec_trx_id, version_trx_id)) {
 
687
                        if (rec_trx_id == version_trx_id) {
688
688
                                /* The transaction was committed while
689
689
                                we searched for earlier versions.
690
690
                                Return the current version as a