[fix](planner)the data type should be the same between input slot and sort slot (#27137)
This commit is contained in:
@ -313,9 +313,10 @@ public class AnalyticPlanner {
|
||||
SlotDescriptor sortSlotDesc = analyzer.getDescTbl().addSlotDescriptor(sortTupleDesc);
|
||||
if (inputSlotDesc.getColumn() != null) {
|
||||
sortSlotDesc.setColumn(inputSlotDesc.getColumn());
|
||||
} else {
|
||||
sortSlotDesc.setType(inputSlotDesc.getType());
|
||||
}
|
||||
// always set type as inputSlotDesc's type
|
||||
sortSlotDesc.setType(inputSlotDesc.getType());
|
||||
|
||||
// all output slots need to be materialized
|
||||
sortSlotDesc.setIsMaterialized(true);
|
||||
sortSlotDesc.setIsNullable(inputSlotDesc.getIsNullable());
|
||||
|
||||
@ -2,3 +2,9 @@
|
||||
-- !order --
|
||||
2023-06-10 cib2205045_1_1s 0.0000 168939.0 0.0000 0.0 0.0000 0.0 0.0000 day
|
||||
|
||||
-- !order2 --
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
|
||||
|
||||
@ -151,4 +151,20 @@ suite("test_inlineview_with_window_function") {
|
||||
group by ordernum
|
||||
)tmp1
|
||||
on tmp.ordernum=tmp1.ordernum;"""
|
||||
|
||||
sql """set enable_nereids_planner=false;"""
|
||||
qt_order2 """
|
||||
SELECT
|
||||
row_number() over(partition by add_date order by pc_num desc)
|
||||
,row_number() over(partition by add_date order by vc_num desc)
|
||||
,row_number() over(partition by add_date order by vt_num desc)
|
||||
FROM (
|
||||
SELECT
|
||||
cast(dnt as datev2) add_date
|
||||
,row_number() over(order by dnt) pc_num
|
||||
,row_number() over(order by dnt) vc_num
|
||||
,row_number() over(order by dnt) vt_num
|
||||
FROM test_table_aaa
|
||||
) t;
|
||||
"""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user