[MDEV-9317] Wrong result for field_bigint=0x000000000000000000001 Created: 2015-12-23  Updated: 2022-12-09

Status: Open
Project: MariaDB Server
Component/s: OTHER
Affects Version/s: 5.5, 10.0, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9
Fix Version/s: 10.3

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


 Description   

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a BIGINT UNSIGNED);
INSERT INTO t1 VALUES (0x000000000000000000001);
SHOW WARNINGS;
SELECT * FROM t1;

returns:

+---------+------+--------------------------------------------+
| Level   | Code | Message                                    |
+---------+------+--------------------------------------------+
| Warning | 1264 | Out of range value for column 'a' at row 1 |
+---------+------+--------------------------------------------+
+----------------------+
| a                    |
+----------------------+
| 18446744073709551615 |
+----------------------+

Storing 1 without a warning would be a more expected behavior.

Moreover, CAST returns 1, without warnings:

+-------------------------------------------+
| CAST(0x000000000000000000001 AS UNSIGNED) |
+-------------------------------------------+
|                                         1 |
+-------------------------------------------+

CAST looks better than a field assignment.


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