1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-4188 Regression fixes for MCOL-641.

1. Make PredicateOperator::setOpType() function wide decimal aware.
  2. Added support for wide decimal in jlf_subquery.cpp::getColumnValue()
     used in scalar subqueries.
  3. Fixed the column index used for fetching wide decimal values from a Row
     when a wide decimal field is used in the order by clause.
This commit is contained in:
Gagan Goel
2020-11-20 16:16:06 -05:00
parent 454ec4be99
commit 785bc43435
3 changed files with 29 additions and 17 deletions

View File

@ -215,7 +215,9 @@ void PredicateOperator::setOpType(Type& l, Type& r)
{
// should following the result type that MySQL gives
fOperationType = l;
fOperationType.scale = (l.scale > r.scale ? l.scale : r.scale);
fOperationType.scale = std::max(l.scale, r.scale);
fOperationType.precision = std::max(l.precision, r.precision);
fOperationType.colWidth = std::max(l.colWidth, r.colWidth);
break;
}
@ -229,7 +231,9 @@ void PredicateOperator::setOpType(Type& l, Type& r)
case execplan::CalpontSystemCatalog::UBIGINT:
fOperationType.colDataType = execplan::CalpontSystemCatalog::DECIMAL;
fOperationType.scale = l.scale;
fOperationType.colWidth = 8;
fOperationType.precision = l.precision;
fOperationType.colWidth = (l.colWidth == datatypes::MAXDECIMALWIDTH) ?
l.colWidth : 8;
break;
default:
@ -261,7 +265,9 @@ void PredicateOperator::setOpType(Type& l, Type& r)
case execplan::CalpontSystemCatalog::UBIGINT:
fOperationType.colDataType = execplan::CalpontSystemCatalog::DECIMAL;
fOperationType.scale = r.scale;
fOperationType.colWidth = 8;
fOperationType.precision = r.precision;
fOperationType.colWidth = (r.colWidth == datatypes::MAXDECIMALWIDTH) ?
r.colWidth : 8;
break;
case execplan::CalpontSystemCatalog::LONGDOUBLE: