From c94bf9ada3d51b5b0ef9284aa4816f046810bdab Mon Sep 17 00:00:00 2001 From: zzg19950727 <1071026277@qq.com> Date: Mon, 6 Feb 2023 16:11:04 +0800 Subject: [PATCH] [CP] [CP] fix gi partition order direction bug --- src/sql/optimizer/ob_log_granule_iterator.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/sql/optimizer/ob_log_granule_iterator.cpp b/src/sql/optimizer/ob_log_granule_iterator.cpp index d157d3aa87..1938ca4588 100644 --- a/src/sql/optimizer/ob_log_granule_iterator.cpp +++ b/src/sql/optimizer/ob_log_granule_iterator.cpp @@ -141,7 +141,24 @@ int ObLogGranuleIterator::set_range_order() } else { add_flag(GI_DESC_ORDER); } - LOG_TRACE("partition/block order", K(is_asc_order), K(gi_attri_flag_)); + LOG_TRACE("partition order", K(is_asc_order), K(gi_attri_flag_), K(ret)); + } else if (affinitize()) { + ObLogicalOperator *child = get_child(first_child); + if (OB_ISNULL(child)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpect null operator", K(child), K(ret)); + } else if (child->get_op_ordering().count() <= 0) { + //do nothing + } else { + common::ObIArray &child_ordering = child->get_op_ordering(); + bool is_asc_order = is_ascending_direction(child_ordering.at(0).order_type_); + if (is_asc_order) { + add_flag(GI_ASC_ORDER); + } else { + add_flag(GI_DESC_ORDER); + } + LOG_TRACE("affinitize partition order", K(is_asc_order), K(gi_attri_flag_), K(ret)); + } } return ret; }