Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Fixed
- 
    5.5.1
- 
    None
- 
        2021-5, 2021-6
Description
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a CHAR(2) DEFAULT '') ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (''); | 
| INSERT INTO t1 VALUES (' '); | 
| INSERT INTO t1 VALUES (' '); | 
| SELECT HEX(a) FROM t1; | 
| +--------+ | 
| | HEX(a) | | 
| +--------+ | 
| | NULL   | | 
| | NULL   | | 
| | NULL   | | 
| +--------+
 | 
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a CHAR(2) DEFAULT 'aa') ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (''); | 
| INSERT INTO t1 VALUES (' '); | 
| INSERT INTO t1 VALUES (' '); | 
| SELECT HEX(a) FROM t1; | 
| +--------+ | 
| | HEX(a) | | 
| +--------+ | 
| | NULL   | | 
| | NULL   | | 
| | NULL   | | 
| +--------+
 | 
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a CHAR(2) DEFAULT ' ') ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (''); | 
| INSERT INTO t1 VALUES (' '); | 
| INSERT INTO t1 VALUES (' '); | 
| SELECT HEX(a) FROM t1; | 
| +--------+ | 
| | HEX(a) | | 
| +--------+ | 
| | NULL   | | 
| | NULL   | | 
| | NULL   | | 
| +--------+
 | 
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a CHAR(2) DEFAULT ' ') ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (''); | 
| INSERT INTO t1 VALUES (' '); | 
| INSERT INTO t1 VALUES (' '); | 
| SELECT HEX(a) FROM t1; | 
| +--------+ | 
| | HEX(a) | | 
| +--------+ | 
| | NULL   | | 
| | NULL   | | 
| | NULL   | | 
| +--------+
 | 
In all above cases, empty strings as well as strings consisting only of space characters were replaced to NULL. Looks wrong.
Also, inserting an empty string should:
- either store NULL for now (like it does)
- or store the true empty string (when we fix the flaw that an empty string is NULL)