From a27d29c909e7e8eb66617ad618928c5c92a0d5ab Mon Sep 17 00:00:00 2001 From: David Hall Date: Fri, 4 Aug 2017 12:32:30 -0500 Subject: [PATCH] MCOL-523 std::string can't be SMALL_POLICY in static_any --- utils/common/any.hpp | 1 - utils/rowgroup/rowaggregation.cpp | 28 ++++++++++++++-------------- utils/udfsdk/mcsv1_udaf.cpp | 28 ++++++++++++++-------------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/utils/common/any.hpp b/utils/common/any.hpp index 50b1eb28d..5265015f1 100755 --- a/utils/common/any.hpp +++ b/utils/common/any.hpp @@ -106,7 +106,6 @@ namespace anyimpl SMALL_POLICY(float); SMALL_POLICY(double); SMALL_POLICY(bool); - SMALL_POLICY(std::string); #undef SMALL_POLICY diff --git a/utils/rowgroup/rowaggregation.cpp b/utils/rowgroup/rowaggregation.cpp index 63c13d551..f31e2e519 100755 --- a/utils/rowgroup/rowaggregation.cpp +++ b/utils/rowgroup/rowaggregation.cpp @@ -2367,21 +2367,21 @@ void RowAggregationUM::calculateAvgColumns() // Sets the value from valOut into column colOut, performing any conversions. void RowAggregationUM::SetUDAFValue(static_any::any& valOut, int64_t colOut) { - static const static_any::any& charTypeId = (char)1; - static const static_any::any& scharTypeId = (signed char)1; - static const static_any::any& shortTypeId = (short)1; - static const static_any::any& intTypeId = (int)1; - static const static_any::any& longTypeId = (long)1; - static const static_any::any& llTypeId = (long long)1; - static const static_any::any& ucharTypeId = (unsigned char)1; - static const static_any::any& ushortTypeId = (unsigned short)1; - static const static_any::any& uintTypeId = (unsigned int)1; - static const static_any::any& ulongTypeId = (unsigned long)1; - static const static_any::any& ullTypeId = (unsigned long long)1; - static const static_any::any& floatTypeId = (float)1; - static const static_any::any& doubleTypeId = (double)1; + static const static_any::any& charTypeId((char)1); + static const static_any::any& scharTypeId((signed char)1); + static const static_any::any& shortTypeId((short)1); + static const static_any::any& intTypeId((int)1); + static const static_any::any& longTypeId((long)1); + static const static_any::any& llTypeId((long long)1); + static const static_any::any& ucharTypeId((unsigned char)1); + static const static_any::any& ushortTypeId((unsigned short)1); + static const static_any::any& uintTypeId((unsigned int)1); + static const static_any::any& ulongTypeId((unsigned long)1); + static const static_any::any& ullTypeId((unsigned long long)1); + static const static_any::any& floatTypeId((float)1); + static const static_any::any& doubleTypeId((double)1); static const std::string typeStr(""); - static const static_any::any& strTypeId = typeStr; + static const static_any::any& strTypeId(typeStr); execplan::CalpontSystemCatalog::ColDataType colDataType = fRowGroupOut->getColTypes()[colOut]; if (valOut.empty()) diff --git a/utils/udfsdk/mcsv1_udaf.cpp b/utils/udfsdk/mcsv1_udaf.cpp index fd78389d5..ac0a1ee2e 100755 --- a/utils/udfsdk/mcsv1_udaf.cpp +++ b/utils/udfsdk/mcsv1_udaf.cpp @@ -240,19 +240,19 @@ void UserData::unserialize(messageqcpp::ByteStream& bs) } const std::string typeStr(""); -const static_any::any& mcsv1_UDAF::charTypeId = (char)1; -const static_any::any& mcsv1_UDAF::scharTypeId = (signed char)1; -const static_any::any& mcsv1_UDAF::shortTypeId = (short)1; -const static_any::any& mcsv1_UDAF::intTypeId = (int)1; -const static_any::any& mcsv1_UDAF::longTypeId = (long)1; -const static_any::any& mcsv1_UDAF::llTypeId = (long long)1; -const static_any::any& mcsv1_UDAF::ucharTypeId = (unsigned char)1; -const static_any::any& mcsv1_UDAF::ushortTypeId = (unsigned short)1; -const static_any::any& mcsv1_UDAF::uintTypeId = (unsigned int)1; -const static_any::any& mcsv1_UDAF::ulongTypeId = (unsigned long)1; -const static_any::any& mcsv1_UDAF::ullTypeId = (unsigned long long)1; -const static_any::any& mcsv1_UDAF::floatTypeId = (float)1; -const static_any::any& mcsv1_UDAF::doubleTypeId = (double)1; -const static_any::any& mcsv1_UDAF::strTypeId = typeStr; +const static_any::any& mcsv1_UDAF::charTypeId((char)1); +const static_any::any& mcsv1_UDAF::scharTypeId((signed char)1); +const static_any::any& mcsv1_UDAF::shortTypeId((short)1); +const static_any::any& mcsv1_UDAF::intTypeId((int)1); +const static_any::any& mcsv1_UDAF::longTypeId((long)1); +const static_any::any& mcsv1_UDAF::llTypeId((long long)1); +const static_any::any& mcsv1_UDAF::ucharTypeId((unsigned char)1); +const static_any::any& mcsv1_UDAF::ushortTypeId((unsigned short)1); +const static_any::any& mcsv1_UDAF::uintTypeId((unsigned int)1); +const static_any::any& mcsv1_UDAF::ulongTypeId((unsigned long)1); +const static_any::any& mcsv1_UDAF::ullTypeId((unsigned long long)1); +const static_any::any& mcsv1_UDAF::floatTypeId((float)1); +const static_any::any& mcsv1_UDAF::doubleTypeId((double)1); +const static_any::any& mcsv1_UDAF::strTypeId(typeStr);