Commit 44b46b73 authored by igor@olga.mysql.com's avatar igor@olga.mysql.com
Browse files

Merge olga.mysql.com:/home/igor/mysql-5.0-opt

into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28728
parents cc0eff3e 27d956b5
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -317,8 +317,11 @@ SHOW COUNT(*) WARNINGS;
SHOW COUNT(*) ERRORS;
@@session.error_count
1
create table t1(f1 int);
insert into t1 values(1),(1),(2),(3),(4),(1),(3),(1);
create table t1(f1 int, f2 varchar(2), f3 float, f4 decimal(2,1));
insert into t1 values 
(1, "a", 1.5, 1.6), (1, "a", 1.5, 1.6), (2, "b", 2.5, 2.6),
(3, "c", 3.5, 3.6), (4, "d", 4.5, 4.6), (1, "a", 1.5, 1.6),
(3, "c", 3.5, 3.6), (1, "a", 1.5, 1.6);
select @a:=f1, count(f1) from t1 group by 1 desc;
@a:=f1	count(f1)
4	1
@@ -331,4 +334,22 @@ select @a:=f1, count(f1) from t1 group by 1 asc;
2	1
3	2
4	1
select @a:=f2, count(f2) from t1 group by 1 desc;
@a:=f2	count(f2)
d	1
c	2
b	1
a	4
select @a:=f3, count(f3) from t1 group by 1 desc;
@a:=f3	count(f3)
4.5	1
3.5	2
2.5	1
1.5	4
select @a:=f4, count(f4) from t1 group by 1 desc;
@a:=f4	count(f4)
4.6	1
3.6	2
2.6	1
1.6	4
drop table t1;
+8 −2
Original line number Diff line number Diff line
@@ -226,8 +226,14 @@ SHOW COUNT(*) ERRORS;
#
# Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
#
create table t1(f1 int);
insert into t1 values(1),(1),(2),(3),(4),(1),(3),(1);
create table t1(f1 int, f2 varchar(2), f3 float, f4 decimal(2,1));
insert into t1 values 
  (1, "a", 1.5, 1.6), (1, "a", 1.5, 1.6), (2, "b", 2.5, 2.6),
  (3, "c", 3.5, 3.6), (4, "d", 4.5, 4.6), (1, "a", 1.5, 1.6),
  (3, "c", 3.5, 3.6), (1, "a", 1.5, 1.6);
select @a:=f1, count(f1) from t1 group by 1 desc;
select @a:=f1, count(f1) from t1 group by 1 asc;
select @a:=f2, count(f2) from t1 group by 1 desc;
select @a:=f3, count(f3) from t1 group by 1 desc;
select @a:=f4, count(f4) from t1 group by 1 desc;
drop table t1;
+2 −2
Original line number Diff line number Diff line
@@ -4208,7 +4208,7 @@ my_decimal *Item_func_set_user_var::val_decimal(my_decimal *val)
}


double Item_func_set_user_var::val_real_result()
double Item_func_set_user_var::val_result()
{
  DBUG_ASSERT(fixed == 1);
  check(TRUE);
@@ -4224,7 +4224,7 @@ longlong Item_func_set_user_var::val_int_result()
  return entry->val_int(&null_value);
}

String *Item_func_set_user_var::val_str_result(String *str)
String *Item_func_set_user_var::str_result(String *str)
{
  DBUG_ASSERT(fixed == 1);
  check(TRUE);
+2 −2
Original line number Diff line number Diff line
@@ -1208,9 +1208,9 @@ class Item_func_set_user_var :public Item_func
  longlong val_int();
  String *val_str(String *str);
  my_decimal *val_decimal(my_decimal *);
  double val_real_result();
  double val_result();
  longlong val_int_result();
  String *val_str_result(String *str);
  String *str_result(String *str);
  my_decimal *val_decimal_result(my_decimal *);
  bool update_hash(void *ptr, uint length, enum Item_result type,
  		   CHARSET_INFO *cs, Derivation dv, bool unsigned_arg);