summaryrefslogtreecommitdiff
path: root/sql/sql_derived.cc
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2019-11-25 17:24:09 +0300
committerAleksey Midenkov <midenok@gmail.com>2019-11-25 17:24:09 +0300
commit0c05a2ed71ebf408e32f7fcdd358d756948d8a5d (patch)
treefabe919df6b001b22391f37c7a32a1e34a6bfd79 /sql/sql_derived.cc
parent7c7f9bef28aa566557da31402142f6dd8298ddd2 (diff)
parentf9ceb0a67ffb20631c936a7e8e8776c000d677ac (diff)
downloadmariadb-git-0c05a2ed71ebf408e32f7fcdd358d756948d8a5d.tar.gz
Merge 10.4 into 10.5
Diffstat (limited to 'sql/sql_derived.cc')
-rw-r--r--sql/sql_derived.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index f4eaa43e8ab..09f8acc536c 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -723,7 +723,17 @@ bool mysql_derived_prepare(THD *thd, LEX *lex, TABLE_LIST *derived)
!(derived->is_multitable() &&
(thd->lex->sql_command == SQLCOM_UPDATE_MULTI ||
thd->lex->sql_command == SQLCOM_DELETE_MULTI))))
+ {
+ /*
+ System versioned tables may still require to get versioning conditions
+ (when updating view). See vers_setup_conds().
+ */
+ if (!unit->prepared &&
+ derived->table->versioned() &&
+ (res= unit->prepare(derived, derived->derived_result, 0)))
+ goto exit;
DBUG_RETURN(FALSE);
+ }
/* prevent name resolving out of derived table */
for (SELECT_LEX *sl= first_select; sl; sl= sl->next_select())