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();