~ubuntu-branches/ubuntu/precise/mysql-5.5/precise-201203300109

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Clint Byrum
  • Date: 2012-02-14 23:59:22 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20120214235922-cux5uek1e5l0hje9
Tags: 5.5.20-0ubuntu1
* New upstream release.
* d/mysql-server-5.5.mysql.upstart: Fix stop on to make sure mysql is
  fully stopped before shutdown commences. (LP: #688541) Also simplify
  start on as it is redundant.
* d/control: Depend on upstart version which has apparmor profile load
  script to prevent failure on upgrade from lucid to precise.
  (LP: #907465)
* d/apparmor-profile: need to allow /run since that is the true path
  of /var/run files. (LP: #917542)
* d/control: mysql-server-5.5 has files in it that used to be owned
  by libmysqlclient-dev, so it must break/replace it. (LP: #912487)
* d/rules, d/control: 5.5.20 Fixes segfault on tests with gcc 4.6,
  change compiler back to system default.
* d/rules: Turn off embedded libedit/readline.(Closes: #659566)

Show diffs side-by-side

added added

removed removed

Lines of Context:
458
458
        cursor->flag = BTR_CUR_BINARY;
459
459
        cursor->index = index;
460
460
 
461
 
        cursor->ibuf_cnt = ULINT_UNDEFINED;
462
 
 
463
461
#ifndef BTR_CUR_ADAPT
464
462
        guess = NULL;
465
463
#else
747
745
                        /* We're doing a search on an ibuf tree and we're one
748
746
                        level above the leaf page. */
749
747
 
750
 
                        ulint   is_min_rec;
751
 
 
752
748
                        ut_ad(level == 0);
753
749
 
754
 
                        is_min_rec = rec_get_info_bits(node_ptr, 0)
755
 
                                & REC_INFO_MIN_REC_FLAG;
756
 
 
757
 
                        if (!is_min_rec) {
758
 
                                cursor->ibuf_cnt
759
 
                                        = ibuf_rec_get_counter(node_ptr);
760
 
 
761
 
                                ut_a(cursor->ibuf_cnt <= 0xFFFF
762
 
                                     || cursor->ibuf_cnt == ULINT_UNDEFINED);
763
 
                        }
764
 
 
765
750
                        buf_mode = BUF_GET;
766
751
                        rw_latch = RW_NO_LATCH;
767
752
                        goto retry_page_get;
1895
1880
        was_delete_marked = rec_get_deleted_flag(
1896
1881
                rec, page_is_comp(buf_block_get_frame(block)));
1897
1882
 
1898
 
        is_hashed = block->is_hashed;
 
1883
        is_hashed = (block->index != NULL);
1899
1884
 
1900
1885
        if (is_hashed) {
1901
1886
                /* TO DO: Can we skip this if none of the fields
3542
3527
        }
3543
3528
 
3544
3529
        for (i = 0; i < n_unique; i++) {
3545
 
                ulint   rec_len;
3546
 
 
3547
 
                rec_get_nth_field_offs(offsets, i, &rec_len);
3548
 
 
3549
 
                if (rec_len != UNIV_SQL_NULL) {
3550
 
                        n_not_null[i]++;
3551
 
                } else {
3552
 
                        /* Break if we hit the first NULL value */
 
3530
                if (rec_offs_nth_sql_null(offsets, i)) {
3553
3531
                        break;
3554
3532
                }
 
3533
 
 
3534
                n_not_null[i]++;
3555
3535
        }
3556
3536
}
3557
3537
 
3694
3674
 
3695
3675
                        if (n_not_null) {
3696
3676
                                btr_record_not_null_field_in_rec(
3697
 
                                        n_cols, offsets_next_rec,
3698
 
                                        n_not_null);
 
3677
                                        n_cols, offsets_next_rec, n_not_null);
3699
3678
                        }
3700
3679
 
3701
3680
                        total_external_size