[fix](analytic) Fix data distribution after analytic operator (#41902) (#41949)

Fix data distribution after analytic operator

pick #41902
This commit is contained in:
Gabriel
2024-10-16 18:41:56 +08:00
committed by GitHub
parent 5bd33fc88c
commit 7d99d5fcc4

View File

@ -101,17 +101,16 @@ public:
DataDistribution required_data_distribution() const override {
if (_partition_by_eq_expr_ctxs.empty()) {
return {ExchangeType::PASSTHROUGH};
} else if (_order_by_eq_expr_ctxs.empty()) {
} else {
return _is_colocate && _require_bucket_distribution && !_followed_by_shuffled_operator
? DataDistribution(ExchangeType::BUCKET_HASH_SHUFFLE, _partition_exprs)
: DataDistribution(ExchangeType::HASH_SHUFFLE, _partition_exprs);
}
return DataSinkOperatorX<AnalyticSinkLocalState>::required_data_distribution();
}
bool require_data_distribution() const override { return true; }
bool require_shuffled_data_distribution() const override {
return !_partition_by_eq_expr_ctxs.empty() && _order_by_eq_expr_ctxs.empty();
return !_partition_by_eq_expr_ctxs.empty();
}
private: