summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2006-09-16 09:50:48 -0700
committerunknown <igor@rurik.mysql.com>2006-09-16 09:50:48 -0700
commit58e178c5ccc1ea44482d9f00459275e8bf02313e (patch)
tree4c8361af601184f86f978b017dac573e569aba83 /sql/sql_update.cc
parent41aaa0f08538c3ded675682d7a282726e320c808 (diff)
downloadmariadb-git-58e178c5ccc1ea44482d9f00459275e8bf02313e.tar.gz
Fixed bug #21493: crash for the second execution of a function
containing a select statement that uses an aggregating IN subquery. Added a parameter to the function fix_prepare_information to restore correctly the having clause for the second execution. Saved andor structure of the having conditions at the proper moment before any calls of split_sum_func2 that could modify the having structure adding new Item_ref objects. (These additions, are produced not with the statement mem_root, but rather with the execution mem_root.) mysql-test/r/sp.result: Added a test case for bug #21493. mysql-test/t/sp.test: Added a test case for bug #21493. sql/sql_delete.cc: Fixed bug #21493: crash for the second execution of a function containing a select statement that uses an aggregating IN subquery. Added a parameter to the function fix_prepare_information to restore correctly the having clause for the second execution. sql/sql_insert.cc: Fixed bug #21493: crash for the second execution of a function containing a select statement that uses an aggregating IN subquery. Added a parameter to the function fix_prepare_information to restore correctly the having clause for the second execution. sql/sql_lex.cc: Fixed bug #21493: crash for the second execution of a function containing a select statement that uses an aggregating IN subquery. Added a parameter to the function fix_prepare_information to restore correctly the having clause for the second execution. sql/sql_lex.h: Fixed bug #21493: crash for the second execution of a function containing a select statement that uses an aggregating IN subquery. Added a parameter to the function fix_prepare_information to restore correctly the having clause for the second execution. sql/sql_update.cc: Fixed bug #21493: crash for the second execution of a function containing a select statement that uses an aggregating IN subquery. Added a parameter to the function fix_prepare_information to restore correctly the having clause for the second execution.
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 84b22c56cf9..a5a767b6ebc 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -606,6 +606,7 @@ err:
bool mysql_prepare_update(THD *thd, TABLE_LIST *table_list,
Item **conds, uint order_num, ORDER *order)
{
+ Item *fake_conds= 0;
TABLE *table= table_list->table;
TABLE_LIST tables;
List<Item> all_fields;
@@ -645,7 +646,7 @@ bool mysql_prepare_update(THD *thd, TABLE_LIST *table_list,
DBUG_RETURN(TRUE);
}
}
- select_lex->fix_prepare_information(thd, conds);
+ select_lex->fix_prepare_information(thd, conds, &fake_conds);
DBUG_RETURN(FALSE);
}