[MCOL-4874] Error with DECIMAL(37,0) column and crossengine join: Internal error: CrossEngineStep::execute() caught getSignedNullValue(): got bad column width (4). Created: 2021-09-24  Updated: 2023-11-17  Resolved: 2021-12-09

Status: Closed
Project: MariaDB ColumnStore
Component/s: None
Affects Version/s: 6.1.1
Fix Version/s: 6.2.3

Type: Bug Priority: Major
Reporter: Valerii Kravchuk Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 0
Labels: regression

Attachments: Text File Testcase.txt    
Sprint: 2021-15, 2021-16

 Description   

The following query:

SELECT * FROM
(SELECT
1 AS test,
v.`BL_ID` AS `15100_BL`,
COUNT(DISTINCT(IF((v.`VAL_39_8002`<>0),v.APO_ID,null))) AS `VALUE_2021_1_Q_9583_1_1`
FROM test.`test_cs` AS v
GROUP BY `15100_BL`
) AS numerator
JOIN
(
SELECT
v.`BL_ID` as `15100_BL`,
COUNT(DISTINCT(IF((EH39<>0),v.APO_ID,null))) AS `VALUE_2021_1_Q_9583_1_1`
FROM test.apo_innodb as v
GROUP BY `15100_BL`
) AS denominator
USING (`15100_BL`);

leads to error 1815: "Internal error: CrossEngineStep::execute() caught getSignedNullValue(): got bad column width (4).", when EH39 column is defined as DECIMAL(37,0) in the InnoDB table.

I was not the case with Columnstore from 10.5.9-6. There is no problem when column's data type is changed to LONGINT.

See full text case attached.



 Comments   
Comment by Daniel Lee (Inactive) [ 2021-12-09 ]

Build verified: 6.2.3-1 (#3480)

Reproduced the issues in an earlier build of develop-6

VERSION()
10.6.5-2-MariaDB-log
ERROR 1815 (HY000) at line 995: Internal error: CrossEngineStep::execute() caught getSignedNullValue(): got bad column width (4).  Width=16

Verified the fix in this new build

VERSION()
10.6.5-2-MariaDB
15100_BL	test	VALUE_2021_1_Q_9583_1_1	VALUE_2021_1_Q_9583_1_1
3	1	0	2
10	1	0	1
5	1	1	3
9	1	0	0

Generated at Thu Feb 08 02:53:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.