Commit dbadc0e2 authored by ramil/ram@ramil.myoffice.izhnet.ru's avatar ramil/ram@ramil.myoffice.izhnet.ru
Browse files

Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint

into  mysql.com:/home/ram/work/b31349/b31349.5.0
parents d035e5c8 0aa87100
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -461,4 +461,18 @@ i
2
2
DROP TABLE t1, t2;
CREATE TABLE t1 (c1 INT NOT NULL);
INSERT INTO t1 VALUES(4188.32999999999992724042385816574096679687500),
('4188.32999999999992724042385816574096679687500'), (4188);
SELECT * FROM t1;
c1
4188
4188
4188
CREATE TABLE t2 (c1 BIGINT);
INSERT INTO t2 VALUES('15449237462.0000000000');
SELECT * FROM t2;
c1
15449237462
DROP TABLE t1, t2;
End of 5.0 tests.
+15 −0
Original line number Diff line number Diff line
@@ -353,5 +353,20 @@ SELECT * FROM t2;

DROP TABLE t1, t2;

#
# Bug #30453: String not cast to int correctly
#

CREATE TABLE t1 (c1 INT NOT NULL);
INSERT INTO t1 VALUES(4188.32999999999992724042385816574096679687500),
('4188.32999999999992724042385816574096679687500'), (4188);
SELECT * FROM t1;

CREATE TABLE t2 (c1 BIGINT);
INSERT INTO t2 VALUES('15449237462.0000000000');
SELECT * FROM t2;

DROP TABLE t1, t2;

--echo End of 5.0 tests.
+9 −5
Original line number Diff line number Diff line
@@ -1538,16 +1538,20 @@ my_strntoull10rnd_8bit(CHARSET_INFO *cs __attribute__((unused)),
      }
      else
        addon= (*str >= '5');
      for ( ; str < end && (ch= (unsigned char) (*str - '0')) < 10; str++)
      {
      if (!dot)
          shift++;
      }
      if (str < end && *str == '.' && !dot)
      {
        for ( ; str < end && (ch= (unsigned char) (*str - '0')) < 10; shift++, str++);
        if (str < end && *str == '.')
        {
          str++;
          for ( ; str < end && (ch= (unsigned char) (*str - '0')) < 10; str++);
        }
      }
      else
      {
        shift= dot - str;
        for ( ; str < end && (ch= (unsigned char) (*str - '0')) < 10; str++);
      }
      goto exp;
    }