mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 06:44:16 +01:00
Merging with 5.1-bugteam.
This commit is contained in:
commit
e2fb6dc1d9
5 changed files with 44 additions and 0 deletions
|
@ -616,6 +616,8 @@ static int run_mysqlcheck_upgrade(void)
|
|||
"--check-upgrade",
|
||||
"--all-databases",
|
||||
"--auto-repair",
|
||||
"--fix-db-names",
|
||||
"--fix-table-names",
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -250,6 +250,15 @@ inline double ulonglong2double(ulonglong value)
|
|||
#define my_off_t2double(A) ulonglong2double(A)
|
||||
#endif /* _WIN64 */
|
||||
|
||||
inline ulonglong double2ulonglong(double d)
|
||||
{
|
||||
double t= d - (double) 0x8000000000000000ULL;
|
||||
|
||||
if (t >= 0)
|
||||
return ((ulonglong) t) + 0x8000000000000000ULL;
|
||||
return (ulonglong) d;
|
||||
}
|
||||
|
||||
#if SIZEOF_OFF_T > 4
|
||||
#define lseek(A,B,C) _lseeki64((A),(longlong) (B),(C))
|
||||
#define tell(A) _telli64(A)
|
||||
|
|
|
@ -789,6 +789,9 @@ typedef SOCKET_SIZE_TYPE size_socket;
|
|||
#define ulonglong2double(A) ((double) (ulonglong) (A))
|
||||
#define my_off_t2double(A) ((double) (my_off_t) (A))
|
||||
#endif
|
||||
#ifndef double2ulonglong
|
||||
#define double2ulonglong(A) ((ulonglong) (double) (A))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef offsetof
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue