List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:August 19 2008 12:39pm
Subject:bzr push into mysql-5.0 branch (kgeorge:2668 to 2669) Bug#38195
View as plain text  
 2669 Georgi Kodinov	2008-08-19
      Bug#38195: Incorrect handling of aggregate functions when loose index scan
      is used causes server crash.
        Revert the fix : unstable test case revealed by pushbuild
modified:
  mysql-test/r/group_min_max.result
  mysql-test/t/group_min_max.test
  sql/sql_select.cc

 2668 Chad MILLER	2008-08-18
      Bug#27526: BUILD/check_cpu misbehaving on Debian testing
      
      more clever gcc version checking.
modified:
  BUILD/check-cpu

=== modified file 'mysql-test/r/group_min_max.result'
--- a/mysql-test/r/group_min_max.result	2008-08-14 19:55:18 +0000
+++ b/mysql-test/r/group_min_max.result	2008-08-19 10:36:24 +0000
@@ -2353,28 +2353,3 @@ a	MIN(b)	MAX(b)	AVG(b)
 2	1	3	2.0000
 1	1	3	2.0000
 DROP TABLE t1;
-create table t1 (a int, b int, primary key (a,b), key `index` (a,b)) engine=MyISAM;
-insert into  t1 (a,b) values (0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),
-(0,8),(0,9),(0,10),(0,11);
-insert into t1 (a,b) select a, max(b)+1 from t1 where a = 0 group by a;
-select * from t1;
-a	b
-0	0
-0	1
-0	2
-0	3
-0	4
-0	5
-0	6
-0	7
-0	8
-0	9
-0	10
-0	11
-0	12
-explain extended select sql_buffer_result a, max(b)+1 from t1 where a = 0 group by a;
-id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
-1	SIMPLE	t1	range	PRIMARY,index	PRIMARY	4	NULL	5	Using where; Using index for group-by;
Using temporary
-Warnings:
-Note	1003	select sql_buffer_result `test`.`t1`.`a` AS `a`,(max(`test`.`t1`.`b`) + 1) AS
`max(b)+1` from `test`.`t1` where (`test`.`t1`.`a` = 0) group by `test`.`t1`.`a`
-drop table t1;

=== modified file 'mysql-test/t/group_min_max.test'
--- a/mysql-test/t/group_min_max.test	2008-08-14 19:55:18 +0000
+++ b/mysql-test/t/group_min_max.test	2008-08-19 10:36:24 +0000
@@ -916,15 +916,3 @@ SELECT a, MIN(b), MAX(b), AVG(b) FROM t1
 SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC;
 
 DROP TABLE t1;
-
-#
-# Bug#38195: Incorrect handling of aggregate functions when loose index scan is
-#            used causes server crash.
-#
-create table t1 (a int, b int, primary key (a,b), key `index` (a,b)) engine=MyISAM;
-insert into  t1 (a,b) values (0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),
-(0,8),(0,9),(0,10),(0,11);
-insert into t1 (a,b) select a, max(b)+1 from t1 where a = 0 group by a;
-select * from t1;
-explain extended select sql_buffer_result a, max(b)+1 from t1 where a = 0 group by a;
-drop table t1;

=== modified file 'sql/sql_select.cc'
--- a/sql/sql_select.cc	2008-08-13 18:24:55 +0000
+++ b/sql/sql_select.cc	2008-08-19 10:36:24 +0000
@@ -1724,8 +1724,7 @@ JOIN::exec()
     if (!items1)
     {
       items1= items0 + all_fields.elements;
-      if (sort_and_group || curr_tmp_table->group ||
-          tmp_table_param.precomputed_group_by)
+      if (sort_and_group || curr_tmp_table->group)
       {
 	if (change_to_use_tmp_fields(thd, items1,
 				     tmp_fields_list1, tmp_all_fields1,
@@ -9260,8 +9259,6 @@ create_tmp_table(THD *thd,TMP_TABLE_PARA
   MI_COLUMNDEF *recinfo;
   uint total_uneven_bit_length= 0;
   bool force_copy_fields= param->force_copy_fields;
-  /* Treat sum functions as normal ones when loose index scan is used. */
-  save_sum_fields|= param->precomputed_group_by;
   DBUG_ENTER("create_tmp_table");
   DBUG_PRINT("enter",("distinct: %d  save_sum_fields: %d  rows_limit: %lu  group: %d",
 		      (int) distinct, (int) save_sum_fields,

Thread
bzr push into mysql-5.0 branch (kgeorge:2668 to 2669) Bug#38195Georgi Kodinov19 Aug