You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-4188 Regression fixes for MCOL-641.
1. In TupleAggregateStep::configDeliveredRowGroup(), use jobInfo.projectionCols instead of jobInfo.nonConstCols for setting scale and precision if the source column is wide decimal. 2. Tighten rules for wide decimal processing. Specifically: a. Replace (precision > INT64MAXPRECISION) checks with (precision > INT64MAXPRECISION && precision <= INT128MAXPRECISION) b. At places where (colWidth == MAXDECIMALWIDTH) is not enough to determine if a column is wide decimal or not, also add a check on type being DECIMAL/UDECIMAL.
This commit is contained in:
@ -1871,7 +1871,8 @@ boost::shared_ptr<ParsedColumnFilter> parseColumnFilter
|
||||
ret.reset(new ParsedColumnFilter());
|
||||
|
||||
ret->columnFilterMode = TWO_ARRAYS;
|
||||
if (colWidth == datatypes::MAXDECIMALWIDTH)
|
||||
if (datatypes::isWideDecimalType(
|
||||
(CalpontSystemCatalog::ColDataType)colType, colWidth))
|
||||
ret->prestored_argVals128.reset(new int128_t[filterCount]);
|
||||
else
|
||||
ret->prestored_argVals.reset(new int64_t[filterCount]);
|
||||
@ -2002,7 +2003,8 @@ boost::shared_ptr<ParsedColumnFilter> parseColumnFilter
|
||||
if (convertToSet)
|
||||
{
|
||||
ret->columnFilterMode = UNORDERED_SET;
|
||||
if (colWidth == datatypes::MAXDECIMALWIDTH)
|
||||
if (datatypes::isWideDecimalType(
|
||||
(CalpontSystemCatalog::ColDataType)colType, colWidth))
|
||||
{
|
||||
ret->prestored_set_128.reset(new prestored_set_t_128());
|
||||
|
||||
|
Reference in New Issue
Block a user