mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
branches/zip: Minor cleanup in update related code.
btr_push_update_extern_fields(): Instead of iterating all upd_get_n_fields(), stop at the first match. row_search_index_entry(): Simplify the return statements. row_upd_sec_step(): Eliminate the local variable "err". row_upd_clust_step(): Add a UNIV_UNLIKELY hint.
This commit is contained in:
parent
e4690b1d9e
commit
8e59e994ac
3 changed files with 10 additions and 26 deletions
|
@ -3499,9 +3499,7 @@ btr_push_update_extern_fields(
|
|||
upd_t* update) /* in: update vector or NULL */
|
||||
{
|
||||
ulint n_pushed = 0;
|
||||
ibool is_updated;
|
||||
ulint n;
|
||||
ulint j;
|
||||
ulint i;
|
||||
|
||||
if (update) {
|
||||
|
@ -3525,22 +3523,23 @@ btr_push_update_extern_fields(
|
|||
if (rec_offs_nth_extern(offsets, i)) {
|
||||
|
||||
/* Check it is not in updated fields */
|
||||
is_updated = FALSE;
|
||||
|
||||
if (update) {
|
||||
ulint j;
|
||||
|
||||
for (j = 0; j < upd_get_n_fields(update);
|
||||
j++) {
|
||||
if (upd_get_nth_field(update, j)
|
||||
->field_no == i) {
|
||||
is_updated = TRUE;
|
||||
goto is_updated;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_updated) {
|
||||
ext_vect[n_pushed] = i;
|
||||
n_pushed++;
|
||||
}
|
||||
is_updated:
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -674,16 +674,5 @@ row_search_index_entry(
|
|||
|
||||
n_fields = dtuple_get_n_fields(entry);
|
||||
|
||||
if (page_rec_is_infimum(rec)) {
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
if (low_match != n_fields) {
|
||||
/* Not found */
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
return(TRUE);
|
||||
return(!page_rec_is_infimum(rec) && low_match == n_fields);
|
||||
}
|
||||
|
|
|
@ -1398,8 +1398,6 @@ row_upd_sec_step(
|
|||
upd_node_t* node, /* in: row update node */
|
||||
que_thr_t* thr) /* in: query thread */
|
||||
{
|
||||
ulint err;
|
||||
|
||||
ut_ad((node->state == UPD_NODE_UPDATE_ALL_SEC)
|
||||
|| (node->state == UPD_NODE_UPDATE_SOME_SEC));
|
||||
ut_ad(!dict_index_is_clust(node->index));
|
||||
|
@ -1407,9 +1405,7 @@ row_upd_sec_step(
|
|||
if (node->state == UPD_NODE_UPDATE_ALL_SEC
|
||||
|| row_upd_changes_ord_field_binary(node->row, node->index,
|
||||
node->update)) {
|
||||
err = row_upd_sec_index_entry(node, thr);
|
||||
|
||||
return(err);
|
||||
return(row_upd_sec_index_entry(node, thr));
|
||||
}
|
||||
|
||||
return(DB_SUCCESS);
|
||||
|
@ -1793,7 +1789,7 @@ exit_func:
|
|||
/* If the update is made for MySQL, we already have the update vector
|
||||
ready, else we have to do some evaluation: */
|
||||
|
||||
if (!node->in_mysql_interface) {
|
||||
if (UNIV_UNLIKELY(!node->in_mysql_interface)) {
|
||||
/* Copy the necessary columns from clust_rec and calculate the
|
||||
new values to set */
|
||||
row_upd_copy_columns(rec, offsets,
|
||||
|
|
Loading…
Reference in a new issue