Details
- 
    Bug 
- 
    Status: Open (View Workflow)
- 
    Major 
- 
    Resolution: Unresolved
- 
    5.5.1, 5.6.1, 6.1.1
- 
    None
- 
    None
Description
The problem reported in MCOL-4619 (for DECIMAL) is also repeatable with implicit FLOAT->INT and DOUBLE->INT conversion:
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a VARCHAR(32), d FLOAT) ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES ('aaaa', 1.5); | 
| SELECT LEFT(a, d) FROM t1; | 
| +------------+ | 
| | LEFT(a, d) | | 
| +------------+ | 
| | a          | | 
| +------------+
 | 
Looks wrong. It returns 'aa' with InnoDB.
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (a VARCHAR(32), d DOUBLE) ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES ('aaaa', 1.5); | 
| SELECT LEFT(a, d) FROM t1; | 
| +------------+ | 
| | LEFT(a, d) | | 
| +------------+ | 
| | a          | | 
| +------------+
 | 
Looks wrong. It returns 'aa' with InnoDB.
Note, the problem is not repeatable with explicit CASTs:
| DROP TABLE IF EXISTS t1; | 
| CREATE TABLE t1 (f FLOAT, d DOUBLE) ENGINE=ColumnStore; | 
| INSERT INTO t1 VALUES (1.5, 1.5); | 
| SELECT CAST(f AS SIGNED), CAST(d AS SIGNED) FROM t1; | 
| +-------------------+-------------------+ | 
| | CAST(f AS SIGNED) | CAST(d AS SIGNED) | | 
| +-------------------+-------------------+ | 
| |                 2 |                 2 | | 
| +-------------------+-------------------+
 | 
Attachments
Issue Links
- relates to
- 
                    MCOL-4361 Replace pow(10.0, (double)scale) expressions with a static dictionary lookup. -         
- Closed
 
-         
- 
                    MCOL-4619 TreeNode::getUintVal() does not round: Implicit DECIMAL->UINT conversion is not like in InnoDB -         
- Closed
 
-         
- 
                    MCOL-641 Full DECIMAL support in ColumnStore -         
- Closed
 
-         
- 
                    MCOL-4628 SET double_col=decimal_col returns an error -         
- Open
 
-