diff options
author | unknown <gkodinov/kgeorge@magare.gmz> | 2007-10-19 15:43:19 +0300 |
---|---|---|
committer | unknown <gkodinov/kgeorge@magare.gmz> | 2007-10-19 15:43:19 +0300 |
commit | b87f0704896f5ab172215ce286a31dedc0e3a568 (patch) | |
tree | 549f9b596e9a8042e40c32dcf92cb428477b3ba4 /sql | |
parent | 3afdb865f1e2c6e0b3b736de2390af1902334e10 (diff) | |
download | mariadb-git-b87f0704896f5ab172215ce286a31dedc0e3a568.tar.gz |
Bug #31157: crash when select+order by the avg of some field within the group by
The uncacheable flag should be set at fix_fields() stage.
Fixed by moving the flag setting to match the one in 5.1
mysql-test/r/query_cache.result:
Bug #31157: test case
mysql-test/t/query_cache.test:
Bug #31157: test case
sql/item_func.cc:
Bug #31157: The uncacheable flag should be set at
fix_fields() stage.
sql/item_func.h:
Bug #31157: The uncacheable flag should be set at
fix_fields() stage.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_func.cc | 9 | ||||
-rw-r--r-- | sql/item_func.h | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index 057f86ac230..21fd944de76 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -3624,10 +3624,17 @@ longlong Item_func_last_insert_id::val_int() thd->first_successful_insert_id_in_prev_stmt= value; return value; } - thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT); return thd->read_first_successful_insert_id_in_prev_stmt(); } + +bool Item_func_last_insert_id::fix_fields(THD *thd, Item **ref) +{ + thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + return Item_int_func::fix_fields(thd, ref); +} + + /* This function is just used to test speed of different functions */ longlong Item_func_benchmark::val_int() diff --git a/sql/item_func.h b/sql/item_func.h index c22eb9b9cd9..6a3d230d2f2 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -935,6 +935,7 @@ public: if (arg_count) max_length= args[0]->max_length; } + bool fix_fields(THD *thd, Item **ref); }; |