Commit 7f4e45ef authored by unknown's avatar unknown
Browse files

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

into mysql.com:/usr/home/ram/work/5.0.b6961

parents c4840884 dba09923
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -770,7 +770,7 @@ ERROR 22003: Out of range value adjusted for column 'col1' at row 1
INSERT INTO t1 VALUES ('-100E+1');
ERROR 22003: Out of range value adjusted for column 'col1' at row 1
INSERT INTO t1 VALUES ('-100E');
ERROR 22003: Out of range value adjusted for column 'col1' at row 1
ERROR HY000: Incorrect decimal value: '-100E' for column 'col1' at row 1
UPDATE t1 SET col1 =col1 * 50000 WHERE col1 =11;
ERROR 22003: Out of range value adjusted for column 'col1' at row 6
UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
@@ -782,8 +782,7 @@ ERROR HY000: Incorrect decimal value: '' for column 'col1' at row 1
INSERT INTO t1 (col1) VALUES ('a59b');
ERROR HY000: Incorrect decimal value: 'a59b' for column 'col1' at row 1
INSERT INTO t1 (col1) VALUES ('1a');
Warnings:
Note	1265	Data truncated for column 'col1' at row 1
ERROR HY000: Incorrect decimal value: '1a' for column 'col1' at row 1
INSERT IGNORE INTO t1 (col1) VALUES ('2a');
Warnings:
Note	1265	Data truncated for column 'col1' at row 1
@@ -818,7 +817,6 @@ NULL
-10.56
11.00
10.00
1.00
2.00
NULL
99.99
+2 −2
Original line number Diff line number Diff line
@@ -740,7 +740,7 @@ INSERT INTO t1 VALUES ('-101.55');
INSERT INTO t1 VALUES ('-1010.55');
--error 1264
INSERT INTO t1 VALUES ('-100E+1');
--error 1264
--error 1366
INSERT INTO t1 VALUES ('-100E');
--error 1264
UPDATE t1 SET col1 =col1 * 50000 WHERE col1 =11;
@@ -754,7 +754,7 @@ INSERT INTO t1 (col1) VALUES ('');
#--error 1265
--error 1366
INSERT INTO t1 (col1) VALUES ('a59b');
#--error 1265
--error 1366
INSERT INTO t1 (col1) VALUES ('1a');
INSERT IGNORE INTO t1 (col1) VALUES ('2a');
INSERT IGNORE INTO t1 values (1/0);
+14 −3
Original line number Diff line number Diff line
@@ -2365,9 +2365,20 @@ int Field_new_decimal::store(const char *from, uint length,
  my_decimal decimal_value;
  DBUG_ENTER("Field_new_decimal::store(char*)");

  switch ((err= str2my_decimal(E_DEC_FATAL_ERROR &
  if ((err= str2my_decimal(E_DEC_FATAL_ERROR &
                      ~(E_DEC_OVERFLOW | E_DEC_BAD_NUM),
                               from, length, charset,  &decimal_value))) {
                      from, length, charset,  &decimal_value)) &&
      table->in_use->abort_on_warning)
  {
    push_warning_printf(table->in_use, MYSQL_ERROR::WARN_LEVEL_ERROR,
                        ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
                        ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD),
                        "decimal", from, field_name,
                        (ulong) table->in_use->row_count);
    DBUG_RETURN(err);
  }

  switch (err) {
  case E_DEC_TRUNCATED:
    set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1);
    break;