Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Fixed
- 
    5.6.1, 6.1.1
- 
        2023-8
Description
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (d1 DECIMAL(30,0), d2 DECIMAL(30,0) NOT NULL) ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (18446744073709551614,18446744073709551614); | 
| SELECT d1, CAST(d1 AS UNSIGNED), CAST(d2 AS UNSIGNED) FROM t1; | 
| +----------------------+----------------------+----------------------+ | 
| | d1                   | CAST(d1 AS UNSIGNED) | CAST(d2 AS UNSIGNED) | | 
| +----------------------+----------------------+----------------------+ | 
| | 18446744073709551614 |                 NULL |                    0 | | 
| +----------------------+----------------------+----------------------+
 | 
The expected result is:
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (d1 DECIMAL(30,0), d2 DECIMAL(30,0) NOT NULL) ENGINE=InnoDB; | 
| INSERT INTO t1 VALUES (18446744073709551614,18446744073709551614); | 
| SELECT d1, CAST(d1 AS UNSIGNED), CAST(d2 AS UNSIGNED) FROM t1; | 
| +----------------------+----------------------+----------------------+ | 
| | d1                   | CAST(d1 AS UNSIGNED) | CAST(d2 AS UNSIGNED) | | 
| +----------------------+----------------------+----------------------+ | 
| | 18446744073709551614 | 18446744073709551614 | 18446744073709551614 | | 
| +----------------------+----------------------+----------------------+
 | 
Note, in ColumnStore the value 18446744073709551614 is reserved for the magic value UBIGINTNULL. So perhaps in ColumnStore we'll have to return 18446744073709551613. But NULL and 0 are certainly wrong.