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

Merge pull request #1612 from tntnatbry/MCOL-4188-subquery-orderby-predicateop-fix-dev

MCOL-4188 Regression fixes for MCOL-641.
This commit is contained in:
Roman Nozdrin
2020-11-30 17:17:20 +03:00
committed by GitHub
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: