This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
commit 569e6ed57e395637e530e9b4d5318dbd7cfb4c96 Author: xueweizhang <zxw520bl...@163.com> AuthorDate: Thu Dec 8 22:54:36 2022 +0800 [fix](aggregate) agg table and unique table get different result when… (#14822) Signed-off-by: nextdreamblue <zxw520bl...@163.com> --- be/src/olap/generic_iterators.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/be/src/olap/generic_iterators.cpp b/be/src/olap/generic_iterators.cpp index afb752ab04..f8be5dc02b 100644 --- a/be/src/olap/generic_iterators.cpp +++ b/be/src/olap/generic_iterators.cpp @@ -263,15 +263,18 @@ private: } // if row cursors equal, compare segment id. - // here we sort segment id in reverse order, because of the row order in AGG_KEYS - // dose no matter, but in UNIQUE_KEYS table we only read the latest is one, so we - // return the row in reverse order of segment id - bool result = res == 0 ? lhs->data_id() < rhs->data_id() : res < 0; + // when in UNIQUE_KEYS table, we need only read the latest one, so we + // return the row in reverse order of segment id. + // when in AGG_KEYS table, we return the row in order of segment id, because + // we need replace the value with lower segment id by the one with higher segment id when + // non-vectorized. if (_is_unique) { + bool result = res == 0 ? lhs->data_id() < rhs->data_id() : res < 0; result ? lhs->set_skip(true) : rhs->set_skip(true); + return result; } - return result; + return lhs->data_id() > rhs->data_id(); } int _sequence_id_idx; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org