Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
2021-17, 2022-22, 2022-23, 2023-4
Description
Assume query Q1 is:
select count(c1) from (select * from t1 union all select * from t1)q; |
And assume query Q2 is:
select count(c1) from (select * from t1)q; |
After the optimization performed in MCOL-4589, Q1's execution time is still higher than 2x compared to Q2 (for a table with 100 columns and 1million records, Q1 takes 0.180s while Q2 takes 0.065s, i.e. Q1 is 2.77x compared to Q2. Ideally, it should be close to 2x). This is primarily due to the TupleUnion::normalize() call that runs in ExeMgr which has an inefficient implementation. The objective of this task is to come up with an effective implementation of TupleUnion::normalize().