summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2016-11-23 17:33:40 +0100
committerSergei Golubchik <serg@mariadb.org>2016-12-12 20:27:36 +0100
commitd137b4dbbac1ce53906ca15817334e3a4daa2655 (patch)
tree14d421c0a6327365d584942b1e9164a7ee5ca379 /sql/sql_update.cc
parenta418c9920047d5222a0d065343347312127b780f (diff)
downloadmariadb-git-d137b4dbbac1ce53906ca15817334e3a4daa2655.tar.gz
MDEV-5800 MyISAM support for indexed vcols
* don't issue an error for ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN * support keyread on vcols * callback into the server to compute vcol values from mi_check/mi_repair * DMLs just work. Automatically.
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 1ae90a31ebf..da0e6cd2116 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -254,7 +254,7 @@ int mysql_update(THD *thd,
ha_rows *found_return, ha_rows *updated_return)
{
bool using_limit= limit != HA_POS_ERROR;
- bool safe_update= MY_TEST(thd->variables.option_bits & OPTION_SAFE_UPDATES);
+ bool safe_update= thd->variables.option_bits & OPTION_SAFE_UPDATES;
bool used_key_is_modified= FALSE, transactional_table, will_batch;
bool can_compare_record;
int res;
@@ -2383,6 +2383,9 @@ int multi_update::do_updates()
field_num++;
} while ((tbl= check_opt_it++));
+ if (table->vfield && table->update_virtual_fields(VCOL_UPDATE_INDEXED))
+ goto err2;
+
table->status|= STATUS_UPDATED;
store_record(table,record[1]);