summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <ramil/ram@mysql.com/myoffice.izhnet.ru>2006-07-23 12:58:26 +0500
committerunknown <ramil/ram@mysql.com/myoffice.izhnet.ru>2006-07-23 12:58:26 +0500
commit774300afe4d8a9f2f39f9a9a75e5f03cd9366262 (patch)
tree08fa09f5252fbbbbd7c9f4cc92b6b37c3ecbceca
parent7c7949b05b8e5482bae6967f5bf2de78934dbbef (diff)
parent4e846a3d274357de741aa8c53f6eeba04aa00fc9 (diff)
downloadmariadb-git-774300afe4d8a9f2f39f9a9a75e5f03cd9366262.tar.gz
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into mysql.com:/usr/home/ram/work/5.0.b10966 mysql-test/r/func_group.result: Auto merged mysql-test/t/func_group.test: Auto merged sql/item_sum.cc: Auto merged sql/item_sum.h: Auto merged
-rw-r--r--mysql-test/r/func_group.result14
-rw-r--r--mysql-test/t/func_group.test11
-rw-r--r--sql/item_sum.cc3
-rw-r--r--sql/item_sum.h2
4 files changed, 26 insertions, 4 deletions
diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result
index f693c6190d5..dae856c4845 100644
--- a/mysql-test/r/func_group.result
+++ b/mysql-test/r/func_group.result
@@ -988,3 +988,17 @@ SUM(a)
6
DROP TABLE t1;
set div_precision_increment= @sav_dpi;
+create table t1 select variance(0);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `variance(0)` double(8,4) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 select stddev(0);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `stddev(0)` double(8,4) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
diff --git a/mysql-test/t/func_group.test b/mysql-test/t/func_group.test
index e8c5fa18a25..ff8f7eb2d72 100644
--- a/mysql-test/t/func_group.test
+++ b/mysql-test/t/func_group.test
@@ -660,3 +660,14 @@ SELECT SUM(a) FROM t1 GROUP BY b/c;
DROP TABLE t1;
set div_precision_increment= @sav_dpi;
+#
+# Bug #10966: Variance functions return wrong data type
+#
+
+create table t1 select variance(0);
+show create table t1;
+drop table t1;
+create table t1 select stddev(0);
+show create table t1;
+drop table t1;
+ \ No newline at end of file
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 4d70debb966..898ea28985b 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -1256,9 +1256,6 @@ Field *Item_sum_variance::create_tmp_field(bool group, TABLE *table,
sizeof(double)*2) + sizeof(longlong),
0, name, table, &my_charset_bin);
}
- if (hybrid_type == DECIMAL_RESULT)
- return new Field_new_decimal(max_length, maybe_null, name, table,
- decimals, unsigned_flag);
return new Field_double(max_length, maybe_null,name,table,decimals);
}
diff --git a/sql/item_sum.h b/sql/item_sum.h
index f4ff257aa4e..f1ea95214de 100644
--- a/sql/item_sum.h
+++ b/sql/item_sum.h
@@ -688,7 +688,7 @@ public:
{ return sample ? "var_samp(" : "variance("; }
Item *copy_or_same(THD* thd);
Field *create_tmp_field(bool group, TABLE *table, uint convert_blob_length);
- enum Item_result result_type () const { return hybrid_type; }
+ enum Item_result result_type () const { return REAL_RESULT; }
};
class Item_sum_std;