summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <gkodinov/kgeorge@magare.gmz>2007-10-19 15:43:19 +0300
committerunknown <gkodinov/kgeorge@magare.gmz>2007-10-19 15:43:19 +0300
commitb87f0704896f5ab172215ce286a31dedc0e3a568 (patch)
tree549f9b596e9a8042e40c32dcf92cb428477b3ba4 /sql
parent3afdb865f1e2c6e0b3b736de2390af1902334e10 (diff)
downloadmariadb-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.cc9
-rw-r--r--sql/item_func.h1
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);
};