Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
5.5(EOL), 10.0(EOL), 10.1(EOL), 10.2(EOL), 10.3(EOL), 10.4(EOL)
-
None
Description
Implicit cast:
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (a INT);
|
INSERT INTO t1 VALUES ('1.5'),('1e2');
|
SELECT * FROM t1;
|
returns:
+------+
|
| a |
|
+------+
|
| 2 |
|
| 100 |
|
+------+
|
I.e. it understands floating point formats.
Explicit CAST works differently:
SELECT CAST('1.5' AS SIGNED), CAST('1e2' AS SIGNED);
|
SHOW WARNINGS;
|
returns:
+-----------------------+-----------------------+
|
| CAST('1.5' AS SIGNED) | CAST('1e2' AS SIGNED) |
|
+-----------------------+-----------------------+
|
| 1 | 1 |
|
+-----------------------+-----------------------+
|
1 row in set, 2 warnings (0.00 sec)
|
|
+---------+------+------------------------------------------+
|
| Level | Code | Message |
|
+---------+------+------------------------------------------+
|
| Warning | 1292 | Truncated incorrect INTEGER value: '1.5' |
|
| Warning | 1292 | Truncated incorrect INTEGER value: '1e2' |
|
+---------+------+------------------------------------------+
|
i.e. it does not understand floating point formats.
Explicit CAST should be fixed to understand floating point format.
Attachments
Issue Links
- relates to
-
MDEV-8514 Storing '1e-1000000000000' into an INT column produces a wrong result
-
- Open
-