Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Fixed
- 
    6.1.1
- 
    None
- 
        2021-5
Description
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a DECIMAL(30,0)) ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (-1); | 
| SELECT HEX(CHAR(a USING latin1)) FROM t1; | 
| +---------------------------+ | 
| | HEX(CHAR(a USING latin1)) | | 
| +---------------------------+ | 
| | NULL                      | | 
| +---------------------------+
 | 
Looks wrong. The expected result is:
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a DECIMAL(30,0)) ENGINE=InnoDB; | 
| INSERT INTO t1 VALUES (-1); | 
| SELECT HEX(CHAR(a USING latin1)) FROM t1; | 
| +---------------------------+ | 
| | HEX(CHAR(a USING latin1)) | | 
| +---------------------------+ | 
| | FFFFFFFF                  | | 
| +---------------------------+
 | 
Note, negative narrow decimals do not have this problem and work as expected:
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a DECIMAL(10,0)) ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (-1); | 
| SELECT HEX(CHAR(a USING latin1)) FROM t1; | 
| +---------------------------+ | 
| | HEX(CHAR(a USING latin1)) | | 
| +---------------------------+ | 
| | FFFFFFFF                  | | 
| +---------------------------+
 |