Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
5.1.67, 5.2.14, 5.3.12, 5.5.36, 10.0.9
-
10.1.8-4
Description
Description:
There is a problem on all platforms; to varying degrees.
Windows 32bit and Windows 64bit:
When supplied BIGINT UNSIGNED, the return type is a BIGINT SIGNED,
Others:
The return type appears to be valid however for BIGINT values, the comparison is always
performed as if the values were signed.
Workaround would be to use IF(x>y,x,y) function instead.
How to repeat:
To reproduce this bug, create this simple table.
DROP TABLE `cma`; |
CREATE TABLE `cma` ( |
`a` binary(16) NOT NULL, |
`b` bigint(20) unsigned NOT NULL, |
PRIMARY KEY (`a`) |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
|
-- Execute the following statement twice
|
|
INSERT INTO cma |
(a, b)
|
VALUES ('foobar',13836376518955650385) |
ON DUPLICATE KEY UPDATE |
b=GREATEST(b,VALUES(b)); |