summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-02-16 15:00:59 +0100
committerSergei Golubchik <serg@mariadb.org>2019-02-21 14:57:10 +0100
commit7b48724dcca4064a272aac1ebe0e3ba061cc78c2 (patch)
tree1ce2575dac353da57d82fb2c93b55208974b4fca /sql
parent9718e374a245091e1e9edc9b004525984eba16f1 (diff)
downloadmariadb-git-7b48724dcca4064a272aac1ebe0e3ba061cc78c2.tar.gz
UPDATE FOR PERIOD OF: don't crash on multi-table views
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_update.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 50b294105f1..c4f11b1ab81 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -384,6 +384,12 @@ int mysql_update(THD *thd,
if (mysql_handle_derived(thd->lex, DT_INIT))
DBUG_RETURN(1);
+ if (table_list->has_period() && table_list->is_view_or_derived())
+ {
+ my_error(ER_IT_IS_A_VIEW, MYF(0), table_list->table_name.str);
+ DBUG_RETURN(TRUE);
+ }
+
if (((update_source_table=unique_table(thd, table_list,
table_list->next_global, 0)) ||
table_list->is_multitable()))
@@ -1337,12 +1343,6 @@ bool mysql_prepare_update(THD *thd, TABLE_LIST *table_list,
if (table_list->has_period())
{
- if (table_list->is_view_or_derived())
- {
- my_error(ER_IT_IS_A_VIEW, MYF(0), table_list->table_name.str);
- DBUG_RETURN(true);
- }
-
*conds= select_lex->period_setup_conds(thd, table_list, *conds);
if (!*conds)
DBUG_RETURN(true);