List:Commits« Previous MessageNext Message »
From:Evgeny Potemkin Date:August 6 2008 10:00pm
Subject:bzr push into mysql-5.0 branch (epotemkin:2610 to 2611) Bug#38195
View as plain text  
 2611 Evgeny Potemkin	2008-08-06
      Bug#38195: Incorrect handling of aggregate functions when loose index scan is
      used causes server crash.
      
      When the loose index scan access method is used values of aggregated functions
      are precomputed by it. Aggregation of such functions shouldn't be performed
      in this case and functions should be treated as normal ones.
      The create_tmp_table function wasn't taking this into account and this led to
      a crash if a query has MIN/MAX aggregate functions and employs temporary table
      and loose index scan.
      Now the JOIN::exec and the create_tmp_table functions treat MIN/MAX aggregate
      functions as normal ones when the loose index scan is used.
modified:
  mysql-test/r/group_min_max.result
  mysql-test/t/group_min_max.test
  sql/sql_select.cc

 2610 Igor Babaev	2008-07-28 [merge]
      Merge
removed:
  mysql-test/suite/funcs_1/data/
  mysql-test/suite/funcs_1/triggers/triggers_master.test
added:
  .bzr-mysql/
  .bzr-mysql/default.conf
  mysql-test/include/wait_condition.inc
  mysql-test/r/federated_disabled.result
  mysql-test/r/multi_update_tiny_hash.result
  mysql-test/r/parser.result
  mysql-test/r/parser_stack.result
  mysql-test/std_data/bug36055.MYD
  mysql-test/std_data/bug36055.MYI
  mysql-test/std_data/bug36055.frm
  mysql-test/std_data/funcs_1/
  mysql-test/std_data/funcs_1/load_file.txt
  mysql-test/suite/funcs_1/datadict/is_key_column_usage.inc
  mysql-test/suite/funcs_1/datadict/is_routines.inc
  mysql-test/suite/funcs_1/datadict/is_schemata.inc
  mysql-test/suite/funcs_1/datadict/is_tables.inc
  mysql-test/suite/funcs_1/datadict/is_triggers.inc
  mysql-test/suite/funcs_1/datadict/is_views.inc
  mysql-test/suite/funcs_1/datadict/tables.inc
  mysql-test/suite/funcs_1/include/bug28309_skip.inc
  mysql-test/suite/funcs_1/include/tb3.inc
  mysql-test/suite/funcs_1/r/is_cml_innodb.result
  mysql-test/suite/funcs_1/r/is_cml_memory.result
  mysql-test/suite/funcs_1/r/is_cml_myisam.result
  mysql-test/suite/funcs_1/r/is_cml_ndb.result
  mysql-test/suite/funcs_1/r/is_columns_is_embedded.result
  mysql-test/suite/funcs_1/r/is_columns_myisam_embedded.result
  mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result
  mysql-test/suite/funcs_1/r/is_key_column_usage_embedded.result
  mysql-test/suite/funcs_1/r/is_routines_embedded.result
  mysql-test/suite/funcs_1/r/is_schemata_embedded.result
  mysql-test/suite/funcs_1/r/is_statistics_mysql_embedded.result
  mysql-test/suite/funcs_1/r/is_table_constraints_mysql_embedded.result
  mysql-test/suite/funcs_1/r/is_tables_embedded.result
  mysql-test/suite/funcs_1/r/is_tables_myisam_embedded.result
  mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result
  mysql-test/suite/funcs_1/r/is_triggers_embedded.result
  mysql-test/suite/funcs_1/r/is_views_embedded.result
  mysql-test/suite/funcs_1/r/ndb_trig_0102.result
  mysql-test/suite/funcs_1/r/ndb_trig_03.result
  mysql-test/suite/funcs_1/r/ndb_trig_0407.result
  mysql-test/suite/funcs_1/r/ndb_trig_08.result
  mysql-test/suite/funcs_1/r/ndb_trig_09.result
  mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result
  mysql-test/suite/funcs_1/t/is_cml_innodb.test
  mysql-test/suite/funcs_1/t/is_cml_memory.test
  mysql-test/suite/funcs_1/t/is_cml_myisam.test
  mysql-test/suite/funcs_1/t/is_cml_ndb.test
  mysql-test/suite/funcs_1/t/is_columns_is_embedded.test
  mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test
  mysql-test/suite/funcs_1/t/is_columns_mysql_embedded.test
  mysql-test/suite/funcs_1/t/is_key_column_usage_embedded.test
  mysql-test/suite/funcs_1/t/is_routines_embedded.test
  mysql-test/suite/funcs_1/t/is_schemata_embedded.test
  mysql-test/suite/funcs_1/t/is_statistics_mysql_embedded.test
  mysql-test/suite/funcs_1/t/is_table_constraints_mysql_embedded.test
  mysql-test/suite/funcs_1/t/is_tables_embedded.test
  mysql-test/suite/funcs_1/t/is_tables_myisam_embedded.test
  mysql-test/suite/funcs_1/t/is_tables_mysql_embedded.test
  mysql-test/suite/funcs_1/t/is_triggers_embedded.test
  mysql-test/suite/funcs_1/t/is_views_embedded.test
  mysql-test/suite/funcs_1/t/ndb_trig_0102.test
  mysql-test/suite/funcs_1/t/ndb_trig_03.test
  mysql-test/suite/funcs_1/t/ndb_trig_0407.test
  mysql-test/suite/funcs_1/t/ndb_trig_08.test
  mysql-test/suite/funcs_1/t/ndb_trig_09.test
  mysql-test/suite/funcs_1/t/ndb_trig_1011ext.test
  mysql-test/t/federated_disabled-master.opt
  mysql-test/t/federated_disabled.test
  mysql-test/t/multi_update_tiny_hash-master.opt
  mysql-test/t/multi_update_tiny_hash.test
  mysql-test/t/parser.test
  mysql-test/t/parser_stack.test
renamed:
  mysql-test/suite/funcs_1/data/innodb_tb1.txt =>
mysql-test/std_data/funcs_1/innodb_tb1.txt
  mysql-test/suite/funcs_1/data/innodb_tb2.txt =>
mysql-test/std_data/funcs_1/innodb_tb2.txt
  mysql-test/suite/funcs_1/data/innodb_tb3.txt =>
mysql-test/std_data/funcs_1/innodb_tb3.txt
  mysql-test/suite/funcs_1/data/innodb_tb4.txt =>
mysql-test/std_data/funcs_1/innodb_tb4.txt
  mysql-test/suite/funcs_1/data/memory_tb1.txt =>
mysql-test/std_data/funcs_1/memory_tb1.txt
  mysql-test/suite/funcs_1/data/memory_tb2.txt =>
mysql-test/std_data/funcs_1/memory_tb2.txt
  mysql-test/suite/funcs_1/data/memory_tb3.txt =>
mysql-test/std_data/funcs_1/memory_tb3.txt
  mysql-test/suite/funcs_1/data/memory_tb4.txt =>
mysql-test/std_data/funcs_1/memory_tb4.txt
  mysql-test/suite/funcs_1/data/myisam_tb1.txt =>
mysql-test/std_data/funcs_1/myisam_tb1.txt
  mysql-test/suite/funcs_1/data/myisam_tb2.txt =>
mysql-test/std_data/funcs_1/myisam_tb2.txt
  mysql-test/suite/funcs_1/data/myisam_tb3.txt =>
mysql-test/std_data/funcs_1/myisam_tb3.txt
  mysql-test/suite/funcs_1/data/myisam_tb4.txt =>
mysql-test/std_data/funcs_1/myisam_tb4.txt
  mysql-test/suite/funcs_1/data/t3.txt => mysql-test/std_data/funcs_1/t3.txt
  mysql-test/suite/funcs_1/data/t4.txt => mysql-test/std_data/funcs_1/t4.txt
  mysql-test/suite/funcs_1/data/t7.txt => mysql-test/std_data/funcs_1/t7.txt
  mysql-test/suite/funcs_1/data/t9.txt => mysql-test/std_data/funcs_1/t9.txt
modified:
  BUILD/Makefile.am
  Makefile.am
  client/mysql.cc
  client/mysql_upgrade.c
  client/mysqlbinlog.cc
  client/mysqltest.c
  configure.in
  dbug/dbug.c
  include/my_global.h
  include/my_sys.h
  include/my_time.h
  mysql-test/Makefile.am
  mysql-test/include/have_archive.inc
  mysql-test/include/have_bdb.inc
  mysql-test/include/have_big5.inc
  mysql-test/include/have_blackhole.inc
  mysql-test/include/have_case_sensitive_file_system.inc
  mysql-test/include/have_compress.inc
  mysql-test/include/have_cp1250_ch.inc
  mysql-test/include/have_cp932.inc
  mysql-test/include/have_crypt.inc
  mysql-test/include/have_csv.inc
  mysql-test/include/have_eucjpms.inc
  mysql-test/include/have_euckr.inc
  mysql-test/include/have_exampledb.inc
  mysql-test/include/have_federated_db.inc
  mysql-test/include/have_gb2312.inc
  mysql-test/include/have_gbk.inc
  mysql-test/include/have_geometry.inc
  mysql-test/include/have_innodb.inc
  mysql-test/include/have_latin2_ch.inc
  mysql-test/include/have_log_bin.inc
  mysql-test/include/have_lowercase0.inc
  mysql-test/include/have_multi_ndb.inc
  mysql-test/include/have_ndb.inc
  mysql-test/include/have_query_cache.inc
  mysql-test/include/have_sjis.inc
  mysql-test/include/have_ssl.inc
  mysql-test/include/have_tis620.inc
  mysql-test/include/have_ucs2.inc
  mysql-test/include/have_udf.inc
  mysql-test/include/have_ujis.inc
  mysql-test/mysql-test-run.pl
  mysql-test/r/bdb.result
  mysql-test/r/binlog_innodb.result
  mysql-test/r/client_xml.result
  mysql-test/r/comments.result
  mysql-test/r/ctype_cp932_binlog.result
  mysql-test/r/ctype_gbk.result
  mysql-test/r/func_concat.result
  mysql-test/r/func_misc.result
  mysql-test/r/heap.result
  mysql-test/r/innodb.result
  mysql-test/r/myisam.result
  mysql-test/r/mysqlbinlog.result
  mysql-test/r/ps.result
  mysql-test/r/repair.result
  mysql-test/r/rpl_sp.result
  mysql-test/r/rpl_view.result
  mysql-test/r/strict.result
  mysql-test/r/subselect.result
  mysql-test/r/subselect3.result
  mysql-test/r/type_binary.result
  mysql-test/r/type_blob.result
  mysql-test/r/type_decimal.result
  mysql-test/r/warnings.result
  mysql-test/suite/funcs_1/README.txt
  mysql-test/suite/funcs_1/datadict/charset_collation.inc
  mysql-test/suite/funcs_1/datadict/columns.inc
  mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc
  mysql-test/suite/funcs_1/datadict/datadict_load.inc
  mysql-test/suite/funcs_1/datadict/tables1.inc
  mysql-test/suite/funcs_1/datadict/tables2.inc
  mysql-test/suite/funcs_1/include/innodb_tb1.inc
  mysql-test/suite/funcs_1/include/innodb_tb2.inc
  mysql-test/suite/funcs_1/include/innodb_tb3.inc
  mysql-test/suite/funcs_1/include/innodb_tb4.inc
  mysql-test/suite/funcs_1/include/memory_tb1.inc
  mysql-test/suite/funcs_1/include/memory_tb2.inc
  mysql-test/suite/funcs_1/include/memory_tb3.inc
  mysql-test/suite/funcs_1/include/memory_tb4.inc
  mysql-test/suite/funcs_1/include/myisam_tb1.inc
  mysql-test/suite/funcs_1/include/myisam_tb2.inc
  mysql-test/suite/funcs_1/include/myisam_tb3.inc
  mysql-test/suite/funcs_1/include/myisam_tb4.inc
  mysql-test/suite/funcs_1/include/sp_tb.inc
  mysql-test/suite/funcs_1/r/innodb_func_view.result
  mysql-test/suite/funcs_1/r/innodb_storedproc_02.result
  mysql-test/suite/funcs_1/r/innodb_storedproc_03.result
  mysql-test/suite/funcs_1/r/innodb_storedproc_06.result
  mysql-test/suite/funcs_1/r/innodb_storedproc_07.result
  mysql-test/suite/funcs_1/r/innodb_storedproc_08.result
  mysql-test/suite/funcs_1/r/innodb_storedproc_10.result
  mysql-test/suite/funcs_1/r/innodb_trig_0102.result
  mysql-test/suite/funcs_1/r/innodb_trig_03.result
  mysql-test/suite/funcs_1/r/innodb_trig_0407.result
  mysql-test/suite/funcs_1/r/innodb_trig_08.result
  mysql-test/suite/funcs_1/r/innodb_trig_09.result
  mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result
  mysql-test/suite/funcs_1/r/innodb_trig_frkey.result
  mysql-test/suite/funcs_1/r/innodb_views.result
  mysql-test/suite/funcs_1/r/is_columns_innodb.result
  mysql-test/suite/funcs_1/r/is_columns_memory.result
  mysql-test/suite/funcs_1/r/is_columns_myisam.result
  mysql-test/suite/funcs_1/r/is_columns_ndb.result
  mysql-test/suite/funcs_1/r/is_tables_innodb.result
  mysql-test/suite/funcs_1/r/is_tables_is.result
  mysql-test/suite/funcs_1/r/is_tables_memory.result
  mysql-test/suite/funcs_1/r/is_tables_myisam.result
  mysql-test/suite/funcs_1/r/is_tables_mysql.result
  mysql-test/suite/funcs_1/r/is_tables_ndb.result
  mysql-test/suite/funcs_1/r/memory_func_view.result
  mysql-test/suite/funcs_1/r/memory_storedproc_02.result
  mysql-test/suite/funcs_1/r/memory_storedproc_03.result
  mysql-test/suite/funcs_1/r/memory_storedproc_06.result
  mysql-test/suite/funcs_1/r/memory_storedproc_07.result
  mysql-test/suite/funcs_1/r/memory_storedproc_08.result
  mysql-test/suite/funcs_1/r/memory_storedproc_10.result
  mysql-test/suite/funcs_1/r/memory_trig_0102.result
  mysql-test/suite/funcs_1/r/memory_trig_03.result
  mysql-test/suite/funcs_1/r/memory_trig_0407.result
  mysql-test/suite/funcs_1/r/memory_trig_08.result
  mysql-test/suite/funcs_1/r/memory_trig_09.result
  mysql-test/suite/funcs_1/r/memory_trig_1011ext.result
  mysql-test/suite/funcs_1/r/memory_views.result
  mysql-test/suite/funcs_1/r/myisam_func_view.result
  mysql-test/suite/funcs_1/r/myisam_storedproc_02.result
  mysql-test/suite/funcs_1/r/myisam_storedproc_03.result
  mysql-test/suite/funcs_1/r/myisam_storedproc_06.result
  mysql-test/suite/funcs_1/r/myisam_storedproc_07.result
  mysql-test/suite/funcs_1/r/myisam_storedproc_08.result
  mysql-test/suite/funcs_1/r/myisam_storedproc_10.result
  mysql-test/suite/funcs_1/r/myisam_trig_0102.result
  mysql-test/suite/funcs_1/r/myisam_trig_03.result
  mysql-test/suite/funcs_1/r/myisam_trig_0407.result
  mysql-test/suite/funcs_1/r/myisam_trig_08.result
  mysql-test/suite/funcs_1/r/myisam_trig_09.result
  mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result
  mysql-test/suite/funcs_1/r/myisam_views.result
  mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc
  mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc
  mysql-test/suite/funcs_1/storedproc/storedproc_02.inc
  mysql-test/suite/funcs_1/storedproc/storedproc_03.inc
  mysql-test/suite/funcs_1/storedproc/storedproc_06.inc
  mysql-test/suite/funcs_1/storedproc/storedproc_10.inc
  mysql-test/suite/funcs_1/t/charset_collation_1.test
  mysql-test/suite/funcs_1/t/charset_collation_3.test
  mysql-test/suite/funcs_1/t/disabled.def
  mysql-test/suite/funcs_1/t/innodb_trig_0102.test
  mysql-test/suite/funcs_1/t/innodb_trig_03.test
  mysql-test/suite/funcs_1/t/innodb_trig_0407.test
  mysql-test/suite/funcs_1/t/innodb_trig_08.test
  mysql-test/suite/funcs_1/t/innodb_trig_09.test
  mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test
  mysql-test/suite/funcs_1/t/innodb_trig_frkey.test
  mysql-test/suite/funcs_1/t/is_basics_mixed.test
  mysql-test/suite/funcs_1/t/is_column_privileges.test
  mysql-test/suite/funcs_1/t/is_column_privileges_is_mysql_test.test
  mysql-test/suite/funcs_1/t/is_columns.test
  mysql-test/suite/funcs_1/t/is_columns_innodb.test
  mysql-test/suite/funcs_1/t/is_columns_is.test
  mysql-test/suite/funcs_1/t/is_columns_memory.test
  mysql-test/suite/funcs_1/t/is_columns_myisam.test
  mysql-test/suite/funcs_1/t/is_columns_mysql.test
  mysql-test/suite/funcs_1/t/is_columns_ndb.test
  mysql-test/suite/funcs_1/t/is_key_column_usage.test
  mysql-test/suite/funcs_1/t/is_routines.test
  mysql-test/suite/funcs_1/t/is_schema_privileges.test
  mysql-test/suite/funcs_1/t/is_schema_privileges_is_mysql_test.test
  mysql-test/suite/funcs_1/t/is_schemata.test
  mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test
  mysql-test/suite/funcs_1/t/is_statistics.test
  mysql-test/suite/funcs_1/t/is_statistics_mysql.test
  mysql-test/suite/funcs_1/t/is_table_constraints.test
  mysql-test/suite/funcs_1/t/is_table_constraints_mysql.test
  mysql-test/suite/funcs_1/t/is_table_privileges.test
  mysql-test/suite/funcs_1/t/is_tables.test
  mysql-test/suite/funcs_1/t/is_tables_innodb.test
  mysql-test/suite/funcs_1/t/is_tables_memory.test
  mysql-test/suite/funcs_1/t/is_tables_myisam.test
  mysql-test/suite/funcs_1/t/is_tables_mysql.test
  mysql-test/suite/funcs_1/t/is_tables_ndb.test
  mysql-test/suite/funcs_1/t/is_triggers.test
  mysql-test/suite/funcs_1/t/is_user_privileges.test
  mysql-test/suite/funcs_1/t/is_views.test
  mysql-test/suite/funcs_1/t/memory_storedproc_02.test
  mysql-test/suite/funcs_1/t/memory_storedproc_03.test
  mysql-test/suite/funcs_1/t/memory_storedproc_06.test
  mysql-test/suite/funcs_1/t/memory_storedproc_07.test
  mysql-test/suite/funcs_1/t/memory_storedproc_08.test
  mysql-test/suite/funcs_1/t/memory_storedproc_10.test
  mysql-test/suite/funcs_1/t/memory_trig_0102.test
  mysql-test/suite/funcs_1/t/memory_trig_03.test
  mysql-test/suite/funcs_1/t/memory_trig_0407.test
  mysql-test/suite/funcs_1/t/memory_trig_08.test
  mysql-test/suite/funcs_1/t/memory_trig_09.test
  mysql-test/suite/funcs_1/t/memory_trig_1011ext.test
  mysql-test/suite/funcs_1/t/memory_views.test
  mysql-test/suite/funcs_1/t/myisam_storedproc_02.test
  mysql-test/suite/funcs_1/t/myisam_storedproc_03.test
  mysql-test/suite/funcs_1/t/myisam_storedproc_06.test
  mysql-test/suite/funcs_1/t/myisam_storedproc_07.test
  mysql-test/suite/funcs_1/t/myisam_storedproc_08.test
  mysql-test/suite/funcs_1/t/myisam_storedproc_10.test
  mysql-test/suite/funcs_1/t/myisam_trig_0102.test
  mysql-test/suite/funcs_1/t/myisam_trig_03.test
  mysql-test/suite/funcs_1/t/myisam_trig_0407.test
  mysql-test/suite/funcs_1/t/myisam_trig_08.test
  mysql-test/suite/funcs_1/t/myisam_trig_09.test
  mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test
  mysql-test/suite/funcs_1/triggers/trig_frkey.inc
  mysql-test/suite/funcs_1/triggers/trig_frkey2.inc
  mysql-test/suite/funcs_1/triggers/triggers_0102.inc
  mysql-test/suite/funcs_1/triggers/triggers_03.inc
  mysql-test/suite/funcs_1/triggers/triggers_0407.inc
  mysql-test/suite/funcs_1/triggers/triggers_08.inc
  mysql-test/suite/funcs_1/triggers/triggers_09.inc
  mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc
  mysql-test/suite/funcs_1/views/func_view.inc
  mysql-test/suite/funcs_1/views/views_master.inc
  mysql-test/suite/funcs_2/charset/charset_master.test
  mysql-test/suite/funcs_2/t/innodb_charset.test
  mysql-test/suite/funcs_2/t/memory_charset.test
  mysql-test/suite/funcs_2/t/myisam_charset.test
  mysql-test/suite/funcs_2/t/ndb_charset.test
  mysql-test/t/client_xml.test
  mysql-test/t/ctype_gbk.test
  mysql-test/t/func_concat.test
  mysql-test/t/func_misc.test
  mysql-test/t/mysql_delimiter.sql
  mysql-test/t/repair.test
  mysql-test/t/rpl_sp.test
  mysql-test/t/rpl_view.test
  mysql-test/t/subselect.test
  mysql-test/t/subselect3.test
  mysql-test/t/type_blob.test
  mysql-test/t/type_decimal.test
  mysys/default.c
  mysys/errors.c
  mysys/mf_pack.c
  mysys/thr_alarm.c
  scripts/make_binary_distribution.sh
  sql-common/my_time.c
  sql/field.cc
  sql/field.h
  sql/filesort.cc
  sql/ha_federated.cc
  sql/handler.cc
  sql/init.cc
  sql/item.cc
  sql/item_create.cc
  sql/item_strfunc.cc
  sql/log.cc
  sql/log_event.cc
  sql/my_decimal.h
  sql/mysql_priv.h
  sql/mysqld.cc
  sql/opt_range.cc
  sql/records.cc
  sql/share/charsets/README
  sql/share/errmsg.txt
  sql/sp.cc
  sql/sp_head.cc
  sql/sp_head.h
  sql/sql_acl.cc
  sql/sql_class.cc
  sql/sql_class.h
  sql/sql_delete.cc
  sql/sql_help.cc
  sql/sql_lex.cc
  sql/sql_lex.h
  sql/sql_parse.cc
  sql/sql_prepare.cc
  sql/sql_select.cc
  sql/sql_table.cc
  sql/sql_trigger.cc
  sql/sql_udf.cc
  sql/sql_update.cc
  sql/sql_view.cc
  sql/sql_yacc.yy
  sql/tztime.cc
  sql/unireg.h
  strings/CHARSET_INFO.txt
  strings/ctype-big5.c
  strings/ctype-gbk.c
  support-files/my-huge.cnf.sh
  support-files/my-innodb-heavy-4G.cnf.sh
  support-files/my-large.cnf.sh
  support-files/my-medium.cnf.sh
  support-files/my-small.cnf.sh
  tests/mysql_client_test.c

=== modified file 'mysql-test/r/group_min_max.result'
--- a/mysql-test/r/group_min_max.result	2007-11-20 14:07:24 +0000
+++ b/mysql-test/r/group_min_max.result	2008-08-06 19:58:20 +0000
@@ -2353,3 +2353,30 @@ 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),(0,12),(0,13);
+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
+0	13
+0	14
+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	6	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	2007-11-20 14:07:24 +0000
+++ b/mysql-test/t/group_min_max.test	2008-08-06 19:58:20 +0000
@@ -916,3 +916,15 @@ 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),(0,12),(0,13);
+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-07-26 20:44:07 +0000
+++ b/sql/sql_select.cc	2008-08-06 19:58:20 +0000
@@ -1724,7 +1724,8 @@ JOIN::exec()
     if (!items1)
     {
       items1= items0 + all_fields.elements;
-      if (sort_and_group || curr_tmp_table->group)
+      if (sort_and_group || curr_tmp_table->group ||
+          tmp_table_param.precomputed_group_by)
       {
 	if (change_to_use_tmp_fields(thd, items1,
 				     tmp_fields_list1, tmp_all_fields1,
@@ -9259,6 +9260,8 @@ 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 (epotemkin:2610 to 2611) Bug#38195Evgeny Potemkin6 Aug