Loading mysql-test/r/type_decimal.result +6 −6 Original line number Diff line number Diff line Loading @@ -199,15 +199,15 @@ select * from t1; a 0.00 0.00 0.00 01.00 +0.00 01.00 +01.00 0.00 0.00 +0.10 0.10 0.10 00000001.00 00000001.00 +0000001.00 0.00 99999999.99 99999999.99 Loading Loading @@ -316,9 +316,9 @@ select * from t1; a 0 0 1 +1 01 0000000001 +000000001 1234567890 9999999999 drop table t1; Loading sql/field.cc +9 −2 Original line number Diff line number Diff line Loading @@ -431,8 +431,9 @@ void Field_decimal::store(const char *from,uint len) { sign_char= *from++; /* Unsigned can't have any flag. So we'll just drop "+" and will overflow on "-" We allow "+" for unsigned decimal unless defined different Both options allowed as one may wish not to have "+" for unsigned numbers because of data processing issues */ if (unsigned_flag) { Loading @@ -441,8 +442,14 @@ void Field_decimal::store(const char *from,uint len) Field_decimal::overflow(1); return; } /* Defining this will not store "+" for unsigned decimal type even if it is passed in numeric string. This will make some tests to fail */ #ifdef DONT_ALLOW_UNSIGNED_PLUS else sign_char=0; #endif } } Loading Loading
mysql-test/r/type_decimal.result +6 −6 Original line number Diff line number Diff line Loading @@ -199,15 +199,15 @@ select * from t1; a 0.00 0.00 0.00 01.00 +0.00 01.00 +01.00 0.00 0.00 +0.10 0.10 0.10 00000001.00 00000001.00 +0000001.00 0.00 99999999.99 99999999.99 Loading Loading @@ -316,9 +316,9 @@ select * from t1; a 0 0 1 +1 01 0000000001 +000000001 1234567890 9999999999 drop table t1; Loading
sql/field.cc +9 −2 Original line number Diff line number Diff line Loading @@ -431,8 +431,9 @@ void Field_decimal::store(const char *from,uint len) { sign_char= *from++; /* Unsigned can't have any flag. So we'll just drop "+" and will overflow on "-" We allow "+" for unsigned decimal unless defined different Both options allowed as one may wish not to have "+" for unsigned numbers because of data processing issues */ if (unsigned_flag) { Loading @@ -441,8 +442,14 @@ void Field_decimal::store(const char *from,uint len) Field_decimal::overflow(1); return; } /* Defining this will not store "+" for unsigned decimal type even if it is passed in numeric string. This will make some tests to fail */ #ifdef DONT_ALLOW_UNSIGNED_PLUS else sign_char=0; #endif } } Loading