Commit af7d3963 authored by kent@kent-amd64.(none)'s avatar kent@kent-amd64.(none)

Merge mysql.com:/home/kent/bk/bug30069/mysql-4.1-build

into  mysql.com:/home/kent/bk/bug30069/mysql-5.0-build
parents 339b3217 3bb7cac8
...@@ -170,6 +170,12 @@ t2.value64=t1.value64; ...@@ -170,6 +170,12 @@ t2.value64=t1.value64;
value64 value32 value64 value32 value64 value32 value64 value32
9223372036854775807 2 9223372036854775807 4 9223372036854775807 2 9223372036854775807 4
drop table t1, t2; drop table t1, t2;
create table t1 (sint64 bigint not null);
insert into t1 values (-9223372036854775808);
select * from t1;
sint64
-9223372036854775808
drop table t1;
create table t1 select 1 as 'a'; create table t1 select 1 as 'a';
show create table t1; show create table t1;
Table Create Table Table Create Table
......
...@@ -113,6 +113,15 @@ t2.value64=t1.value64; ...@@ -113,6 +113,15 @@ t2.value64=t1.value64;
drop table t1, t2; drop table t1, t2;
# Test for BUG#30069, can't handle bigint -9223372036854775808 on
# x86_64, with some GCC versions and optimizations.
create table t1 (sint64 bigint not null);
insert into t1 values (-9223372036854775808);
select * from t1;
drop table t1;
# End of 4.1 tests # End of 4.1 tests
# #
......
...@@ -845,7 +845,7 @@ int my_long10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)), ...@@ -845,7 +845,7 @@ int my_long10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)),
{ {
if (val < 0) if (val < 0)
{ {
val= -val; val= -(unsigned long int)val;
*dst++= '-'; *dst++= '-';
len--; len--;
sign= 1; sign= 1;
...@@ -881,7 +881,7 @@ int my_longlong10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)), ...@@ -881,7 +881,7 @@ int my_longlong10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)),
{ {
if (val < 0) if (val < 0)
{ {
val = -val; val = -(ulonglong)val;
*dst++= '-'; *dst++= '-';
len--; len--;
sign= 1; sign= 1;
......
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