From d43e418a8c3835d6ff2918919e6a28cdbd655fc8 Mon Sep 17 00:00:00 2001 From: Roman Nozdrin Date: Tue, 13 Dec 2022 18:13:22 +0300 Subject: [PATCH] MCOL-5346 This patch forces TreeNode::getIntValue to use conversion for dict-based CHAR/VARCHAR and TEXT columns (#2657) Co-authored-by: Roman Nozdrin --- dbcon/execplan/treenode.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dbcon/execplan/treenode.h b/dbcon/execplan/treenode.h index f8351669b..aef756010 100644 --- a/dbcon/execplan/treenode.h +++ b/dbcon/execplan/treenode.h @@ -665,17 +665,25 @@ inline int64_t TreeNode::getIntVal() switch (fResultType.colDataType) { case CalpontSystemCatalog::CHAR: + { + if (fResultType.colWidth <= 8) + { + return fResult.intVal; + } + datatypes::DataCondition cnverr; + literal::Converter cnv(fResult.strVal, cnverr); + return cnv.toSInt(cnverr); + } case CalpontSystemCatalog::VARCHAR: case CalpontSystemCatalog::VARBINARY: case CalpontSystemCatalog::BLOB: case CalpontSystemCatalog::TEXT: { + if (fResultType.colWidth <= 7) + return fResult.intVal; + datatypes::DataCondition cnverr; literal::Converter cnv(fResult.strVal, cnverr); - if (datatypes::DataCondition::Code(cnverr) != 0) - { - cerr << "error in int conversion from '" << fResult.strVal << "'"; - } return cnv.toSInt(cnverr); }