From 024e6bd35816aaf62966f744e61ecf107cb6b42a Mon Sep 17 00:00:00 2001 From: Denis Khalikov Date: Fri, 9 Jun 2023 11:15:02 +0300 Subject: [PATCH] MCOL-5512 Fix for post join filter. This patch fixes certain situations where post join filter is not applying. --- dbcon/joblist/tuple-bps.cpp | 2 +- dbcon/joblist/tuplehashjoin.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dbcon/joblist/tuple-bps.cpp b/dbcon/joblist/tuple-bps.cpp index 8dd18b464..4785916a1 100644 --- a/dbcon/joblist/tuple-bps.cpp +++ b/dbcon/joblist/tuple-bps.cpp @@ -281,7 +281,7 @@ uint64_t TupleBPS::JoinLocalData::generateJoinResultSet(const uint32_t depth, { // Don't wait for memory, just send the data on to DL. RowGroup out(local_outputRG); - if (fe2 && tbps->runFEonPM()) + if (fe2 && !tbps->runFEonPM()) { processFE2(outputData); tbps->rgDataVecToDl(outputData, local_fe2Output, dlp); diff --git a/dbcon/joblist/tuplehashjoin.cpp b/dbcon/joblist/tuplehashjoin.cpp index 4d9959d8d..0e577beab 100644 --- a/dbcon/joblist/tuplehashjoin.cpp +++ b/dbcon/joblist/tuplehashjoin.cpp @@ -1892,6 +1892,19 @@ void TupleHashJoinStep::generateJoinResultSet(const vector // Count the memory if (UNLIKELY(!getMemory(l_outputRG.getMaxDataSize()))) { + // MCOL-5512 + if (fe2) + { + RowGroup l_fe2RG; + Row fe2InRow; + Row fe2OutRow; + + l_fe2RG = fe2Output; + l_outputRG.initRow(&fe2InRow); + l_fe2RG.initRow(&fe2OutRow); + + processFE2(l_outputRG, l_fe2RG, fe2InRow, fe2OutRow, &outputData, fe2.get()); + } // Don't let the join results buffer get out of control. sendResult(outputData); outputData.clear();