From 5f76cee5f43750e09aa9d2dc97b21d05f3261bd1 Mon Sep 17 00:00:00 2001 From: David Hall Date: Tue, 2 Apr 2019 11:36:56 -0600 Subject: [PATCH] MCOL-2267 allow for long double in row::equals() --- utils/rowgroup/rowgroup.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/utils/rowgroup/rowgroup.h b/utils/rowgroup/rowgroup.h index 27f0b98a4..b91e0f0ef 100644 --- a/utils/rowgroup/rowgroup.h +++ b/utils/rowgroup/rowgroup.h @@ -1176,7 +1176,12 @@ inline bool Row::equals(const Row& r2, const std::vector& keyCols) con if (!isLongString(col)) { - if (getUintField(col) != r2.getUintField(col)) + if (getColType(i) == execplan::CalpontSystemCatalog::LONGDOUBLE) + { + if (getLongDoubleField(i) != r2.getLongDoubleField(i)) + return false; + } + else if (getUintField(col) != r2.getUintField(col)) return false; } else @@ -1204,7 +1209,12 @@ inline bool Row::equals(const Row& r2, uint32_t lastCol) const for (uint32_t i = 0; i <= lastCol; i++) if (!isLongString(i)) { - if (getUintField(i) != r2.getUintField(i)) + if (getColType(i) == execplan::CalpontSystemCatalog::LONGDOUBLE) + { + if (getLongDoubleField(i) != r2.getLongDoubleField(i)) + return false; + } + else if (getUintField(i) != r2.getUintField(i)) return false; } else