From b401a9293c40e356d0a5a149d7ca444c7084704f Mon Sep 17 00:00:00 2001 From: David Hall Date: Wed, 2 Aug 2017 14:57:07 -0500 Subject: [PATCH] MCOL-523 Add back in initial reset for UDAF calls without GROUP BY --- dbcon/mysql/ha_window_function.cpp | 1 + utils/rowgroup/rowaggregation.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/dbcon/mysql/ha_window_function.cpp b/dbcon/mysql/ha_window_function.cpp index c53b0094c..1ad45583c 100755 --- a/dbcon/mysql/ha_window_function.cpp +++ b/dbcon/mysql/ha_window_function.cpp @@ -680,6 +680,7 @@ ReturnedColumn* buildWindowFunctionColumn(Item* item, gp_walk_info& gwi, bool& n break; case Item_sum::UDF_SUM_FUNC: { + // UDAnF functions each have their own default set in context. mcsv1sdk::mcsv1Context& context = ac->getUDAFContext(); if (context.getRunFlag(UDAF_WINDOWFRAME_REQUIRED)) { diff --git a/utils/rowgroup/rowaggregation.cpp b/utils/rowgroup/rowaggregation.cpp index f12f0d811..b0f239329 100755 --- a/utils/rowgroup/rowaggregation.cpp +++ b/utils/rowgroup/rowaggregation.cpp @@ -792,6 +792,14 @@ void RowAggregation::initialize() { fRowGroupOut->setRowCount(1); attachGroupConcatAg(); + // For UDAF, reset the data + for (uint64_t i = 0; i < fFunctionCols.size(); i++) + { + if (fFunctionCols[i]->fAggFunction == ROWAGG_UDAF) + { + resetUDAF(i); + } + } }