summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-06-01 16:59:21 +0200
committerSergei Golubchik <serg@mariadb.org>2018-06-04 12:32:23 +0200
commit45dee3fc83f1f88115e60b72398c7f6b66bfde40 (patch)
treed9a203a3bd5ed5e6f2c270246da3642ce996af44 /sql/sql_update.cc
parentac9cc638923836cb7f0d44d1919ad2d5afc2a9f4 (diff)
downloadmariadb-git-45dee3fc83f1f88115e60b72398c7f6b66bfde40.tar.gz
cleanup: remove TABLE::vcol_set
use a read_set instead. a bit in the read_set means "the field value is needed" (read or generated, whatever it takes).
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc13
1 files changed, 3 insertions, 10 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 4b0d070ca50..b56f7383837 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -2536,17 +2536,10 @@ int multi_update::do_updates()
not its dependencies
*/
while(TABLE *tbl= check_opt_it++)
- {
- if (tbl->vcol_set)
- {
- bitmap_clear_all(tbl->vcol_set);
- for (Field **vf= tbl->vfield; *vf; vf++)
- {
+ if (Field **vf= tbl->vfield)
+ for (; *vf; vf++)
if (bitmap_is_set(tbl->read_set, (*vf)->field_index))
- tbl->mark_virtual_col(*vf);
- }
- }
- }
+ (*vf)->vcol_info->expr->walk(&Item::register_field_in_read_map, 1, 0);
for (cur_table= update_tables; cur_table; cur_table= cur_table->next_local)
{