[MDEV-8810] Warnings for EDOM vs truncation in val_int, val_real, val_decimal Created: 2015-09-17  Updated: 2020-06-01

Status: Open
Project: MariaDB Server
Component/s: OTHER
Affects Version/s: 5.1.67, 5.2.14, 5.3.12, 5.5, 10.0, 10.1, 10.3.4, 10.4, 10.5
Fix Version/s: 10.5

Type: Bug Priority: Minor
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: upstream


 Description   

When a string value is insterted into an INT, DOUBLE or DECIMAL column, it send different warnings in case of EDOM errors (when they could not find any digits) and truncation errors:

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (''),('123x');
SHOW WARNINGS;

+---------+------+-----------------------------------------------------+
| Level   | Code | Message                                             |
+---------+------+-----------------------------------------------------+
| Warning | 1366 | Incorrect integer value: '' for column 'a' at row 1 |
| Warning | 1265 | Data truncated for column 'a' at row 2              |
+---------+------+-----------------------------------------------------+

If I force implicit string-to-number conversion the other way around:

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a VARCHAR(10));
INSERT INTO t1 VALUES (''),('123x');
SELECT a+1 FROM t1;
SHOW WARNINGS;

it does not distinguish between EDOM and truncation:

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: ''     |
| Warning | 1292 | Truncated incorrect DOUBLE value: '123x' |
+---------+------+------------------------------------------+

Functions and literals also do not distinguish between EDOM and truncation:

SELECT ''+1,'123x'+1;
SHOW WARNINGS;

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: ''     |
| Warning | 1292 | Truncated incorrect DOUBLE value: '123x' |
+---------+------+------------------------------------------+

In case of EDOM the warning tells about truncation, which is not true.


Generated at Thu Feb 08 07:29:58 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.