summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorAlexey Kopytov <alexeyk@mysql.com>2008-12-03 19:15:39 +0300
committerAlexey Kopytov <alexeyk@mysql.com>2008-12-03 19:15:39 +0300
commit5f7869a22a4068ae052680630a6d062208ec27a6 (patch)
tree897de4fad83899e4bae91b9435028a0240815aa6 /mysql-test
parentf0c49a6a7dec6bd53ad5575c07ac31a1e27c8a16 (diff)
downloadmariadb-git-5f7869a22a4068ae052680630a6d062208ec27a6.tar.gz
Fix for bug #27483: Casting 'scientific notation type' to 'unsigned
bigint' fails on windows. Visual Studio does not take into account some x86 hardware limitations which leads to incorrect results when converting large DOUBLE values to BIGINT UNSIGNED ones. Fixed by adding a workaround for double->ulonglong conversion on Windows.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/type_float.result13
-rw-r--r--mysql-test/t/type_float.test17
2 files changed, 30 insertions, 0 deletions
diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result
index f1075604ca9..e7f17bd75a7 100644
--- a/mysql-test/r/type_float.result
+++ b/mysql-test/r/type_float.result
@@ -392,4 +392,17 @@ f1 + 0e0
1.0000000150475e+30
-1.0000000150475e+30
drop table t1;
+create table t1(d double, u bigint unsigned);
+insert into t1(d) values (9.2233720368547777e+18),
+(9.223372036854779e18),
+(9.22337203685479e18),
+(1.84e19);
+update t1 set u = d;
+select * from t1;
+d u
+9.22337203685478e+18 9223372036854775808
+9.22337203685478e+18 9223372036854779904
+9.22337203685479e+18 9223372036854790144
+1.84e+19 18400000000000000000
+drop table t1;
End of 5.0 tests
diff --git a/mysql-test/t/type_float.test b/mysql-test/t/type_float.test
index 9aa8c00d24a..b23755b44fb 100644
--- a/mysql-test/t/type_float.test
+++ b/mysql-test/t/type_float.test
@@ -252,4 +252,21 @@ insert into t1 values (2e30), (-2e30);
select f1 + 0e0 from t1;
drop table t1;
+#
+# Bug #27483: Casting 'scientific notation type' to 'unsigned bigint' fails on
+# windows.
+#
+
+create table t1(d double, u bigint unsigned);
+
+insert into t1(d) values (9.2233720368547777e+18),
+ (9.223372036854779e18),
+ (9.22337203685479e18),
+ (1.84e19);
+
+update t1 set u = d;
+select * from t1;
+
+drop table t1;
+
--echo End of 5.0 tests