You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
MCOL-3716: Wrong min/max set for short strings
cpimport was doing unsigned comparisons for these, but initializing max to MIN_BIGINT (0x8000000000000002), which is > than any ascii string, so it would never get set. Changed the init value to 0 for char types.
This commit is contained in:
@ -1642,7 +1642,7 @@ int BulkLoadBuffer::parseCol(ColumnInfo& columnInfo)
|
||||
tokenNullFlag = true;
|
||||
}
|
||||
|
||||
// convert the data into appropriate format.
|
||||
// convert the data into appropriate format and update CP values
|
||||
convert(field, tokenLength, tokenNullFlag,
|
||||
buf + i * columnInfo.column.width,
|
||||
columnInfo.column, bufStats);
|
||||
@ -1673,7 +1673,7 @@ int BulkLoadBuffer::parseCol(ColumnInfo& columnInfo)
|
||||
|
||||
lastInputRowInExtent += columnInfo.rowsPerExtent();
|
||||
|
||||
if (isUnsigned(columnInfo.column.dataType))
|
||||
if (isUnsigned(columnInfo.column.dataType) || isCharType(columnInfo.column.dataType))
|
||||
{
|
||||
bufStats.minBufferVal = static_cast<int64_t>(MAX_UBIGINT);
|
||||
bufStats.maxBufferVal = static_cast<int64_t>(MIN_UBIGINT);
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
int64_t satCount;
|
||||
BLBufferStats(ColDataType colDataType) : satCount(0)
|
||||
{
|
||||
if (isUnsigned(colDataType))
|
||||
if (isUnsigned(colDataType) || isCharType(colDataType))
|
||||
{
|
||||
minBufferVal = static_cast<int64_t>(MAX_UBIGINT);
|
||||
maxBufferVal = static_cast<int64_t>(MIN_UBIGINT);
|
||||
|
Reference in New Issue
Block a user