summaryrefslogtreecommitdiff
path: root/sql/sql_tvc.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-01-04 09:26:38 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2022-01-04 09:26:38 +0200
commit3f5726768f17342fd6dfec1be1e4d71814bc8564 (patch)
treecc85210cf84b11f0543d9a20bcb78f40cb32c140 /sql/sql_tvc.cc
parentc410f7aaea400eb98f13552725b685a2513aafcb (diff)
parent4c3ad24413f234599eda27f4958dd3ff21df3203 (diff)
downloadmariadb-git-3f5726768f17342fd6dfec1be1e4d71814bc8564.tar.gz
Merge 10.5 into 10.6
Diffstat (limited to 'sql/sql_tvc.cc')
-rw-r--r--sql/sql_tvc.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/sql_tvc.cc b/sql/sql_tvc.cc
index 49f319b3856..bdaf6829fbd 100644
--- a/sql/sql_tvc.cc
+++ b/sql/sql_tvc.cc
@@ -571,7 +571,10 @@ bool Item_func_in::create_value_list_for_tvc(THD *thd,
if (is_list_of_rows)
{
- Item_row *row_list= (Item_row *)(args[i]);
+ Item_row *row_list= (Item_row *)(args[i]->build_clone(thd));
+
+ if (!row_list)
+ return true;
for (uint j=0; j < row_list->cols(); j++)
{
@@ -593,7 +596,8 @@ bool Item_func_in::create_value_list_for_tvc(THD *thd,
sprintf(col_name, "_col_%i", 1);
args[i]->set_name(thd, col_name, strlen(col_name), thd->charset());
}
- if (tvc_value->push_back(args[i]->real_item()))
+ Item *arg_clone= args[i]->build_clone(thd);
+ if (!arg_clone || tvc_value->push_back(arg_clone))
return true;
}