summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-01-22 17:14:36 +0100
committerSergei Golubchik <serg@mariadb.org>2017-02-13 18:12:04 +0100
commit29ed440d4457a3cc2ab8c22674eb5dc8f0ac0ce6 (patch)
tree27d782c447324263bec17de8f254a66408a663ca /sql/sql_update.cc
parent4cf4b61b24d4331aa930d0b36c36763b7d9ca0cd (diff)
downloadmariadb-git-29ed440d4457a3cc2ab8c22674eb5dc8f0ac0ce6.tar.gz
MDEV-11836 vcol.vcol_keys_myisam fails in buildbot and outside
move TABLE::key_read into handler. Because in index merge and DS-MRR there can be many handlers per table, and some of them use key read while others don't. "keyread" is really per handler, not per TABLE property.
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index c46b80f798b..4aa68c51b3e 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -682,7 +682,7 @@ int mysql_update(THD *thd,
if (error >= 0)
goto err;
}
- table->set_keyread(false);
+ table->file->ha_end_keyread();
table->column_bitmaps_set(save_read_set, save_write_set);
}
@@ -1032,7 +1032,7 @@ err:
delete select;
delete file_sort;
free_underlaid_joins(thd, select_lex);
- table->set_keyread(false);
+ table->file->ha_end_keyread();
thd->abort_on_warning= 0;
DBUG_RETURN(1);
@@ -2404,7 +2404,8 @@ int multi_update::do_updates()
} while ((tbl= check_opt_it++));
if (table->vfield &&
- table->update_virtual_fields(VCOL_UPDATE_INDEXED_FOR_UPDATE))
+ table->update_virtual_fields(table->file,
+ VCOL_UPDATE_INDEXED_FOR_UPDATE))
goto err2;
table->status|= STATUS_UPDATED;
@@ -2431,7 +2432,7 @@ int multi_update::do_updates()
(error= table->update_default_fields(1, ignore)))
goto err2;
if (table->vfield &&
- table->update_virtual_fields(VCOL_UPDATE_FOR_WRITE))
+ table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_WRITE))
goto err2;
if ((error= cur_table->view_check_option(thd, ignore)) !=
VIEW_CHECK_OK)