diff options
author | unknown <heikki@hundin.mysql.fi> | 2002-03-21 18:03:09 +0200 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2002-03-21 18:03:09 +0200 |
commit | a251389029abac07b2ddaf0f8f36243a493ee9a8 (patch) | |
tree | 8484c3bb65d40af0743b44a24a788dc2d5cf7d48 /innobase/row/row0sel.c | |
parent | fbcea143c7c6ed19653b728f61413d3b648e1613 (diff) | |
download | mariadb-git-a251389029abac07b2ddaf0f8f36243a493ee9a8.tar.gz |
Many files:
Merge InnoDB-3.23.50
innobase/btr/btr0btr.c:
Merge InnoDB-3.23.50
innobase/btr/btr0cur.c:
Merge InnoDB-3.23.50
innobase/btr/btr0sea.c:
Merge InnoDB-3.23.50
innobase/buf/buf0buf.c:
Merge InnoDB-3.23.50
innobase/buf/buf0flu.c:
Merge InnoDB-3.23.50
innobase/dict/dict0dict.c:
Merge InnoDB-3.23.50
innobase/dict/dict0load.c:
Merge InnoDB-3.23.50
innobase/fil/fil0fil.c:
Merge InnoDB-3.23.50
innobase/fsp/fsp0fsp.c:
Merge InnoDB-3.23.50
innobase/include/buf0flu.h:
Merge InnoDB-3.23.50
innobase/include/dict0dict.h:
Merge InnoDB-3.23.50
innobase/include/fil0fil.h:
Merge InnoDB-3.23.50
innobase/include/fsp0fsp.h:
Merge InnoDB-3.23.50
innobase/include/log0log.h:
Merge InnoDB-3.23.50
innobase/include/log0recv.h:
Merge InnoDB-3.23.50
innobase/include/mem0mem.h:
Merge InnoDB-3.23.50
innobase/include/os0file.h:
Merge InnoDB-3.23.50
innobase/include/row0mysql.h:
Merge InnoDB-3.23.50
innobase/include/srv0srv.h:
Merge InnoDB-3.23.50
innobase/include/srv0start.h:
Merge InnoDB-3.23.50
innobase/include/trx0sys.h:
Merge InnoDB-3.23.50
innobase/include/ut0byte.h:
Merge InnoDB-3.23.50
innobase/include/ut0rnd.h:
Merge InnoDB-3.23.50
innobase/include/ut0ut.h:
Merge InnoDB-3.23.50
innobase/log/log0log.c:
Merge InnoDB-3.23.50
innobase/log/log0recv.c:
Merge InnoDB-3.23.50
innobase/mem/mem0mem.c:
Merge InnoDB-3.23.50
innobase/os/os0file.c:
Merge InnoDB-3.23.50
innobase/rem/rem0cmp.c:
Merge InnoDB-3.23.50
innobase/row/row0ins.c:
Merge InnoDB-3.23.50
innobase/row/row0mysql.c:
Merge InnoDB-3.23.50
innobase/row/row0sel.c:
Merge InnoDB-3.23.50
innobase/row/row0upd.c:
Merge InnoDB-3.23.50
innobase/srv/srv0srv.c:
Merge InnoDB-3.23.50
innobase/srv/srv0start.c:
Merge InnoDB-3.23.50
innobase/trx/trx0sys.c:
Merge InnoDB-3.23.50
innobase/ut/ut0mem.c:
Merge InnoDB-3.23.50
innobase/ut/ut0ut.c:
Merge InnoDB-3.23.50
sql/ha_innobase.cc:
Merge InnoDB-3.23.50
sql/ha_innobase.h:
Merge InnoDB-3.23.50
Diffstat (limited to 'innobase/row/row0sel.c')
-rw-r--r-- | innobase/row/row0sel.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c index 663a544faac..9ebd47c25bf 100644 --- a/innobase/row/row0sel.c +++ b/innobase/row/row0sel.c @@ -2233,7 +2233,7 @@ row_sel_get_clust_rec_for_mysql( (or old_vers) is not rec; in that case we must ignore such row because in our snapshot rec would not have existed. Remember that from rec we cannot see directly which transaction - id corrsponds to it: we have to go to the clustered index + id corresponds to it: we have to go to the clustered index record. A query where we want to fetch all rows where the secondary index value is in some interval would return a wrong result if we would not drop rows which we come to @@ -2244,6 +2244,12 @@ row_sel_get_clust_rec_for_mysql( && !row_sel_sec_rec_is_for_clust_rec(rec, sec_index, clust_rec, clust_index)) { clust_rec = NULL; + } else { +#ifdef UNIV_SEARCH_DEBUG + ut_a(clust_rec == NULL || + row_sel_sec_rec_is_for_clust_rec(rec, sec_index, + clust_rec, clust_index)); +#endif } } @@ -2399,7 +2405,12 @@ row_sel_try_search_shortcut_for_mysql( btr_pcur_open_with_no_init(index, search_tuple, PAGE_CUR_GE, BTR_SEARCH_LEAF, pcur, - RW_S_LATCH, mtr); +#ifndef UNIV_SEARCH_DEBUG + RW_S_LATCH, +#else + 0, +#endif + mtr); rec = btr_pcur_get_rec(pcur); if (!page_rec_is_user_rec(rec)) { @@ -2623,15 +2634,18 @@ row_search_for_mysql( goto no_shortcut; } - +#ifndef UNIV_SEARCH_DEBUG if (!trx->has_search_latch) { rw_lock_s_lock(&btr_search_latch); trx->has_search_latch = TRUE; } - +#endif shortcut = row_sel_try_search_shortcut_for_mysql(&rec, prebuilt, &mtr); if (shortcut == SEL_FOUND) { +#ifdef UNIV_SEARCH_DEBUG + ut_a(0 == cmp_dtuple_rec(search_tuple, rec)); +#endif row_sel_store_mysql_rec(buf, prebuilt, rec); mtr_commit(&mtr); @@ -2793,7 +2807,9 @@ rec_loop: /* The record matches enough */ ut_ad(mode == PAGE_CUR_GE); - +#ifdef UNIV_SEARCH_DEBUG + ut_a(0 == cmp_dtuple_rec(search_tuple, rec)); +#endif } else if (match_mode == ROW_SEL_EXACT) { /* Test if the index record matches completely to search_tuple in prebuilt: if not, then we return with DB_RECORD_NOT_FOUND */ |