diff options
author | unknown <heikki@hundin.mysql.fi> | 2003-06-18 03:38:09 +0300 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2003-06-18 03:38:09 +0300 |
commit | fb94c5810c55fa1e33b084e3f9b2cecc7abe2a99 (patch) | |
tree | ec2b8adc625149caa37966c0a1b14335b6549011 /innobase/row/row0sel.c | |
parent | 1efc292be6c92316b16eef70b289f6e1ab7f2a33 (diff) | |
download | mariadb-git-fb94c5810c55fa1e33b084e3f9b2cecc7abe2a99.tar.gz |
row0sel.c, row0ins.c:
Fix error in previous push
innobase/row/row0ins.c:
Fix error in previous push
innobase/row/row0sel.c:
Fix error in previous push
Diffstat (limited to 'innobase/row/row0sel.c')
-rw-r--r-- | innobase/row/row0sel.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c index afc01247347..a263de74e3e 100644 --- a/innobase/row/row0sel.c +++ b/innobase/row/row0sel.c @@ -609,8 +609,12 @@ row_sel_get_clust_rec( clust_rec = btr_pcur_get_rec(&(plan->clust_pcur)); - if (btr_pcur_get_low_match(&(plan->clust_pcur)) - < dict_index_get_n_unique(index)) { + /* Note: only if the search ends up on a non-infimum record is the + low_match value the real match to the search tuple */ + + if (!page_rec_is_user_rec(clust_rec) + || btr_pcur_get_low_match(&(plan->clust_pcur)) + < dict_index_get_n_unique(index)) { ut_a(rec_get_deleted_flag(rec)); ut_a(node->read_view); @@ -2322,8 +2326,12 @@ row_sel_get_clust_rec_for_mysql( clust_rec = btr_pcur_get_rec(prebuilt->clust_pcur); - if (btr_pcur_get_low_match(prebuilt->clust_pcur) - < dict_index_get_n_unique(clust_index)) { + /* Note: only if the search ends up on a non-infimum record is the + low_match value the real match to the search tuple */ + + if (!page_rec_is_user_rec(clust_rec) + || btr_pcur_get_low_match(prebuilt->clust_pcur) + < dict_index_get_n_unique(clust_index)) { /* In a rare case it is possible that no clust rec is found for a delete-marked secondary index record: if in row0umod.c |