mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Proposed fix for #674
This crash happens in rather exotic case when we try to run SELECT DISTINCT some_func(SUM(some_field)) GROUP BY another_field; on a table with single row. Optimizer marks this table as const, sets group=NULL (with remove_const) thus, create_tmp_table makes mistake collecting columns for temporary table and then crashes because the field_count gets less than hidden_columns_count. sql/sql_select.cc: There's several ways to fix this bug. This one looks easy and correct to me
This commit is contained in:
@@ -453,6 +453,9 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
|
||||
goto err;
|
||||
|
||||
thd->proc_info="preparing";
|
||||
|
||||
select_distinct= select_distinct && (join.const_tables != join.tables);
|
||||
|
||||
if (result->initialize_tables(&join))
|
||||
goto err;
|
||||
if (join.const_table_map != join.found_const_table_map &&
|
||||
|
||||
Reference in New Issue
Block a user