Loading mysql-test/r/strict.result +2 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -818,7 +817,6 @@ NULL -10.56 11.00 10.00 1.00 2.00 NULL 99.99 Loading mysql-test/t/strict.test +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading sql/field.cc +14 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
mysql-test/r/strict.result +2 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -818,7 +817,6 @@ NULL -10.56 11.00 10.00 1.00 2.00 NULL 99.99 Loading
mysql-test/t/strict.test +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading
sql/field.cc +14 −3 Original line number Diff line number Diff line Loading @@ -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; Loading