Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
6.4.6, 22.08.8
-
None
-
2023-11
Description
create schema coltest; use coltest;
|
drop table if exists test_mult;
|
create table test_mult (
|
indemnity_paid int(11),
|
n_clms tinyint(3) unsigned
|
) engine=columnstore;
|
insert into test_mult (indemnity_paid, n_clms) values (-10, 1);
|
select indemnity_paid, n_clms, indemnity_paid * n_clms from test_mult;
|
+----------------+--------+-------------------------+
|
| indemnity_paid | n_clms | indemnity_paid * n_clms |
|
+----------------+--------+-------------------------+
|
| -10 | 1 | 18446744073709551606 |
|
+----------------+--------+-------------------------+
|
The multiplication produces an incorrect value.
For the same table defined engine=innodb, the multiplication produces an expected out-of-range error:
alter table test_mult engine=innodb;
|
select indemnity_paid, n_clms, indemnity_paid * n_clms from test_mult;
|
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '`coltest`.`test_mult`.`indemnity_paid` * `coltest`.`test_mult`.`n_clms`'
|
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Rank | Ranked higher |
Rank | Ranked lower |
Labels | triage |
Labels | triage | mcs_cs_ncci triage |
Assignee | Sergey Zefirov [ JIRAUSER47362 ] |
Fix Version/s | 23.10.1 [ 29105 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Labels | mcs_cs_ncci triage | mcs_cs_ncci rm_invalid_data triage |
Sprint | 2023-11 [ 737 ] |
Status | In Progress [ 3 ] | In Testing [ 10301 ] |
Assigned for Review | Roman [ drrtuy ] | |
Assigned for Testing | Kirill Perov [ JIRAUSER51446 ] |
Labels | mcs_cs_ncci rm_invalid_data triage | rm_invalid_data triage |
Resolution | Fixed [ 1 ] | |
Status | In Testing [ 10301 ] | Closed [ 6 ] |
Zendesk Related Tickets | 155608 |
MDB promotes the mult type into UNSIGNED BIGINT however their mult processing checks if the signed column value is negative or not. If it is there is an error that is propagated upwards. MCS math processing lacks error propagation.