Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Duplicate
-
5.6.1, 6.1.1
-
None
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 correct 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 |
|
+---------------------------+
|