Commit a5711053 authored by heikki@donna.mysql.fi's avatar heikki@donna.mysql.fi

row0mysql.c Fix REPLACE problem, non-latin1 charset bug

row0upd.c	Fix REPLACE problem, non-latin1 charset bug
rem0cmp.c	Fix REPLACE problem, non-latin1 charset bug
parent becf27e6
......@@ -171,6 +171,7 @@ cmp_whole_field(
}
return(0);
case DATA_VARMYSQL:
case DATA_MYSQL:
return(innobase_mysql_cmp(
(int)(type->prtype & ~DATA_NOT_NULL),
......
......@@ -634,31 +634,21 @@ row_update_for_mysql(
clust_index = dict_table_get_first_index(table);
if (prebuilt->in_update_remember_pos) {
if (prebuilt->index == clust_index) {
btr_pcur_copy_stored_position(node->pcur,
prebuilt->pcur);
} else {
btr_pcur_copy_stored_position(node->pcur,
prebuilt->clust_pcur);
}
ut_a(node->pcur->rel_pos == BTR_PCUR_ON);
goto skip_cursor_search;
} else {
/* MySQL seems to call rnd_pos before updating each row it
has cached: we can get the correct cursor position from
prebuilt->pcur; NOTE that we cannot build the row reference
from mysql_rec if the clustered index was automatically
generated for the table: MySQL does not know anything about
the row id used as the clustered index key */
if (prebuilt->pcur->btr_cur.index == clust_index) {
btr_pcur_copy_stored_position(node->pcur, prebuilt->pcur);
ut_a(node->pcur->rel_pos == BTR_PCUR_ON);
goto skip_cursor_search;
} else {
btr_pcur_copy_stored_position(node->pcur, prebuilt->clust_pcur);
}
ut_a(node->pcur->rel_pos == BTR_PCUR_ON);
/* MySQL seems to call rnd_pos before updating each row it
has cached: we can get the correct cursor position from
prebuilt->pcur; NOTE that we cannot build the row reference
from mysql_rec if the clustered index was automatically
generated for the table: MySQL does not know anything about
the row id used as the clustered index key */
#ifdef notdefined
/* We have to search for the correct cursor position */
......@@ -691,7 +681,6 @@ row_update_for_mysql(
mem_heap_free(heap);
#endif
skip_cursor_search:
savept = trx_savept_take(trx);
thr = que_fork_get_first_thr(prebuilt->upd_graph);
......
......@@ -1196,7 +1196,7 @@ row_upd(
}
}
if (node->cmpl_info & UPD_NODE_NO_ORD_CHANGE) {
if (!node->is_delete && (node->cmpl_info & UPD_NODE_NO_ORD_CHANGE)) {
goto function_exit;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment