From 13716677d75137be37c22c7292972e20a1cd390f Mon Sep 17 00:00:00 2001 From: Jose Rojas Date: Tue, 10 Mar 2020 03:01:05 +0000 Subject: [PATCH] MCOL-3760 Related. Fix bug3145 regression broken on rand() --- utils/funcexp/func_rand.cpp | 10 +++++++++- utils/funcexp/functor_export.h | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/utils/funcexp/func_rand.cpp b/utils/funcexp/func_rand.cpp index f0400eb79..94498b011 100644 --- a/utils/funcexp/func_rand.cpp +++ b/utils/funcexp/func_rand.cpp @@ -53,7 +53,15 @@ double Func_rand::getRand() fSeed1 += 23; fSeed2 = (fSeed1 + fSeed2 + 33) % maxValue; - fSeeds[fSeedIndex] = std::make_pair(fSeed1, fSeed2); + if (fSeeds.size() > fSeedIndex) + { + fSeeds[fSeedIndex] = std::make_pair(fSeed1, fSeed2); + } + else + { + fSeeds.push_back(std::make_pair(fSeed1, fSeed2)); + } + return (((double) fSeed1) / (double)maxValue); } diff --git a/utils/funcexp/functor_export.h b/utils/funcexp/functor_export.h index 27bd5c3d0..e8d69f401 100644 --- a/utils/funcexp/functor_export.h +++ b/utils/funcexp/functor_export.h @@ -38,7 +38,7 @@ namespace funcexp class Func_rand : public Func { public: - Func_rand() : Func("rand"), fSeed1(0), fSeed2(0), fSeedSet(false), fMultipleSeedsSet(false), fFirstRow(nullptr), fSeeds(){} + Func_rand() : Func("rand"), fSeed1(0), fSeed2(0), fSeedSet(false), fMultipleSeedsSet(false), fFirstRow(NULL), fSeeds(){} virtual ~Func_rand() {} double getRand(); @@ -46,8 +46,8 @@ public: { fSeedSet = seedSet; fMultipleSeedsSet = seedSet; - fFirstRow = nullptr; - fSeeds = {}; + fFirstRow = NULL; + fSeeds.clear(); } execplan::CalpontSystemCatalog::ColType operationType(FunctionParm& fp, execplan::CalpontSystemCatalog::ColType& resultType);