Commit 7dabb641 authored by serg@serg.mylan's avatar serg@serg.mylan

merged

parents 538a3f7a 831c0246
...@@ -733,3 +733,10 @@ xxxxxxxxxxxxxxxxxxxaa ...@@ -733,3 +733,10 @@ xxxxxxxxxxxxxxxxxxxaa
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxz xxxxxxxxxxxxxxxxxxxz
drop table t1; drop table t1;
create table t1 (a int not null, b int not null, c int not null);
insert t1 values (1,1,1),(1,1,2),(1,2,1);
select a, b from t1 group by a, b order by sum(c);
a b
1 2
1 1
drop table t1;
...@@ -500,3 +500,9 @@ insert into t1 set a = concat(repeat('x', 19), 'aa'); ...@@ -500,3 +500,9 @@ insert into t1 set a = concat(repeat('x', 19), 'aa');
set max_sort_length=20; set max_sort_length=20;
select a from t1 order by a; select a from t1 order by a;
drop table t1; drop table t1;
create table t1 (a int not null, b int not null, c int not null);
insert t1 values (1,1,1),(1,1,2),(1,2,1);
select a, b from t1 group by a, b order by sum(c);
drop table t1;
...@@ -131,36 +131,6 @@ void net_send_error(THD *thd, uint sql_errno, const char *err) ...@@ -131,36 +131,6 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
/*
Send a warning to the end user
SYNOPSIS
send_warning()
thd Thread handler
sql_errno Warning number (error message)
err Error string. If not set, use ER(sql_errno)
DESCRIPTION
Register the warning so that the user can get it with mysql_warnings()
Send an ok (+ warning count) to the end user.
*/
void send_warning(THD *thd, uint sql_errno, const char *err)
{
DBUG_ENTER("send_warning");
if (thd->spcont &&
thd->spcont->find_handler(sql_errno, MYSQL_ERROR::WARN_LEVEL_WARN))
{
DBUG_VOID_RETURN;
}
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, sql_errno,
err ? err : ER(sql_errno));
send_ok(thd);
DBUG_VOID_RETURN;
}
/* /*
Write error package and flush to client Write error package and flush to client
It's a little too low level, but I don't want to use another buffer for It's a little too low level, but I don't want to use another buffer for
......
...@@ -1754,7 +1754,8 @@ bool select_dumpvar::send_data(List<Item> &items) ...@@ -1754,7 +1754,8 @@ bool select_dumpvar::send_data(List<Item> &items)
bool select_dumpvar::send_eof() bool select_dumpvar::send_eof()
{ {
if (! row_count) if (! row_count)
send_warning(thd, ER_SP_FETCH_NO_DATA); push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_SP_FETCH_NO_DATA, ER(ER_SP_FETCH_NO_DATA));
::send_ok(thd,row_count); ::send_ok(thd,row_count);
return 0; return 0;
} }
......
...@@ -3594,8 +3594,9 @@ create_error: ...@@ -3594,8 +3594,9 @@ create_error:
message in the error log, so we don't send it. message in the error log, so we don't send it.
*/ */
if ((thd->options & OPTION_STATUS_NO_TRANS_UPDATE) && !thd->slave_thread) if ((thd->options & OPTION_STATUS_NO_TRANS_UPDATE) && !thd->slave_thread)
send_warning(thd,ER_WARNING_NOT_COMPLETE_ROLLBACK,0); push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
else ER_WARNING_NOT_COMPLETE_ROLLBACK,
ER(ER_WARNING_NOT_COMPLETE_ROLLBACK));
send_ok(thd); send_ok(thd);
} }
else else
...@@ -3606,8 +3607,9 @@ create_error: ...@@ -3606,8 +3607,9 @@ create_error:
if (!ha_rollback_to_savepoint(thd, lex->savepoint_name)) if (!ha_rollback_to_savepoint(thd, lex->savepoint_name))
{ {
if ((thd->options & OPTION_STATUS_NO_TRANS_UPDATE) && !thd->slave_thread) if ((thd->options & OPTION_STATUS_NO_TRANS_UPDATE) && !thd->slave_thread)
send_warning(thd, ER_WARNING_NOT_COMPLETE_ROLLBACK, 0); push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
else ER_WARNING_NOT_COMPLETE_ROLLBACK,
ER(ER_WARNING_NOT_COMPLETE_ROLLBACK));
send_ok(thd); send_ok(thd);
} }
else else
......
...@@ -263,11 +263,13 @@ inline int setup_without_group(THD *thd, Item **ref_pointer_array, ...@@ -263,11 +263,13 @@ inline int setup_without_group(THD *thd, Item **ref_pointer_array,
save_allow_sum_func= thd->allow_sum_func; save_allow_sum_func= thd->allow_sum_func;
thd->allow_sum_func= 0; thd->allow_sum_func= 0;
res= (setup_conds(thd, tables, leaves, conds) || res= setup_conds(thd, tables, leaves, conds);
setup_order(thd, ref_pointer_array, tables, fields, all_fields, thd->allow_sum_func= save_allow_sum_func;
order) || res= res || setup_order(thd, ref_pointer_array, tables, fields, all_fields,
setup_group(thd, ref_pointer_array, tables, fields, all_fields, order);
group, hidden_group_fields)); thd->allow_sum_func= 0;
res= res || setup_group(thd, ref_pointer_array, tables, fields, all_fields,
group, hidden_group_fields);
thd->allow_sum_func= save_allow_sum_func; thd->allow_sum_func= save_allow_sum_func;
DBUG_RETURN(res); DBUG_RETURN(res);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment