github-actions[bot] commented on code in PR #64605:
URL: https://github.com/apache/doris/pull/64605#discussion_r3463907562
##########
regression-test/suites/query_p0/hint/test_leading.groovy:
##########
@@ -939,136 +940,136 @@ suite("test_leading") {
// only distribute hint + single hint
// unused
explain {
- sql """shape plan select count(*) from t1 right outer join [broadcast]
t2 on c1 = c2;"""
+ sql """shape plan select * from t1 right outer join [broadcast] t2 on
c1 = c2 order by 1 limit 1;"""
contains("UnUsed: [broadcast]_1")
}
// only distribute hint + multi hints
explain {
- sql """shape plan select count(*) from t1 right outer join [broadcast]
t2 on c1 = c2 join[shuffle] t3 on c2 = c3;"""
+ sql """shape plan select * from t1 right outer join [broadcast] t2 on
c1 = c2 join[shuffle] t3 on c2 = c3 order by 1 limit 1;"""
contains("UnUsed: [broadcast]_1")
}
explain {
- sql """shape plan select count(*) from t1 join [shuffle] t2 on c1 = c2
right outer join[broadcast] t3 on c2 = c3;"""
+ sql """shape plan select * from t1 join [shuffle] t2 on c1 = c2 right
outer join[broadcast] t3 on c2 = c3 order by 1 limit 1;"""
contains("UnUsed: [broadcast]_2")
}
// leading + distribute hint outside leading + single hint
explain {
- sql """shape plan select /*+ leading(t1 t2 t3) */ count(*) from t1
join [broadcast] t2 on c1 = c2 join[shuffle] t3 on c2 = c3;"""
+ sql """shape plan select /*+ leading(t1 t2 t3) */ * from t1 join
[broadcast] t2 on c1 = c2 join[shuffle] t3 on c2 = c3 order by 1 limit 1;"""
contains("UnUsed: [broadcast]_1 [shuffle]_2")
}
explain {
- sql """shape plan select /*+ leading(t1 t2 t3) */ count(*) from t1
right outer join [broadcast] t2 on c1 = c2 join[shuffle] t3 on c2 = c3;"""
+ sql """shape plan select /*+ leading(t1 t2 t3) */ * from t1 right
outer join [broadcast] t2 on c1 = c2 join[shuffle] t3 on c2 = c3 order by 1
limit 1;"""
contains("UnUsed: [broadcast]_1 [shuffle]_2")
}
explain {
- sql """shape plan select /*+ leading(t1 t2 t3) */ count(*) from t1
join [broadcast] t2 on c1 = c2 right outer join[shuffle] t3 on c2 = c3;"""
+ sql """shape plan select /*+ leading(t1 t2 t3) */ * from t1 join
[broadcast] t2 on c1 = c2 right outer join[shuffle] t3 on c2 = c3 order by 1
limit 1;"""
contains("UnUsed: [broadcast]_1 [shuffle]_2")
}
explain {
- sql """shape plan select /*+ leading(t1 t2 t3) */ count(*) from t1
join [shuffle] t2 on c1 = c2 right outer join[broadcast] t3 on c2 = c3;"""
+ sql """shape plan select /*+ leading(t1 t2 t3) */ * from t1 join
[shuffle] t2 on c1 = c2 right outer join[broadcast] t3 on c2 = c3 order by 1
limit 1;"""
contains("UnUsed: [shuffle]_1 [broadcast]_2")
}
// leading + distribute hint inside leading + single hint
// inner join
- qt_select92_1 """explain shape plan select /*+ leading(t1 shuffle t2
broadcast t3) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select92_2 """explain shape plan select /*+ leading(t1 shuffle {t2
broadcast t3}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select92_3 """explain shape plan select /*+ leading(t1 shuffle {t3
broadcast t2}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select92_4 """explain shape plan select /*+ leading(t2 shuffle t1
broadcast t3) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select92_5 """explain shape plan select /*+ leading(t2 shuffle {t1
broadcast t3}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select92_6 """explain shape plan select /*+ leading(t2 shuffle {t3
broadcast t1}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
-
- qt_select93_1 """explain shape plan select /*+ leading(t1 broadcast t2
broadcast t3) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select93_2 """explain shape plan select /*+ leading(t1 broadcast {t2
broadcast t3}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select93_3 """explain shape plan select /*+ leading(t1 broadcast {t3
broadcast t2}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select93_4 """explain shape plan select /*+ leading(t2 broadcast t1
broadcast t3) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select93_5 """explain shape plan select /*+ leading(t2 broadcast {t1
broadcast t3}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select93_6 """explain shape plan select /*+ leading(t2 broadcast {t3
broadcast t1}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
-
- qt_select94_2 """explain shape plan select /*+ leading(t1 shuffle t2
shuffle t3) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select94_2 """explain shape plan select /*+ leading(t1 shuffle {t2
shuffle t3}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select94_2 """explain shape plan select /*+ leading(t1 shuffle {t3
shuffle t2}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select94_2 """explain shape plan select /*+ leading(t2 shuffle t1
shuffle t3) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select94_2 """explain shape plan select /*+ leading(t2 shuffle {t1
shuffle t3}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
- qt_select94_2 """explain shape plan select /*+ leading(t2 shuffle {t3
shuffle t1}) */ count(*) from t1 join t2 on c1 = c2 join t3 on c2 = c3;"""
Review Comment:
These cases are meant to lock down the join order/distribution chosen by the
leading hint, but adding `ORDER BY 1 LIMIT 1` makes the expected shape depend
on TopN planning instead. The new `.out` now records `PhysicalTopN[MERGE_SORT]`
and `PhysicalTopN[LOCAL_SORT]` for every case in this block, so future TopN
strategy changes will still churn this join-hint test even when the join order
is unchanged. Since this is only `EXPLAIN SHAPE PLAN`, please use plain `select
*` here (or otherwise filter `PhysicalTopN`) so the expected output is scoped
to the join/hint shape.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]