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-641 1. Add support for int128_t in ParsedColumnFilter.
2. Set Decimal precision in SimpleColumn::evaluate(). 3. Add support for int128_t in ConstantColumn. 4. Set IDB_Decimal::s128Value in buildDecimalColumn(). 5. Use width 16 as first if predicate for branching based on decimal width.
This commit is contained in:
committed by
Roman Nozdrin
parent
0bd172cd6e
commit
74b64eb4f1
@ -39,6 +39,7 @@
|
||||
#include "brmtypes.h"
|
||||
#include "dataconvert.h"
|
||||
#include "exceptclasses.h"
|
||||
#include "mcs_decimal.h"
|
||||
|
||||
#include "joblisttypes.h"
|
||||
|
||||
@ -986,18 +987,18 @@ void BulkLoadBuffer::convert(char* field, int fieldLength,
|
||||
if ( (column.dataType == CalpontSystemCatalog::DECIMAL) ||
|
||||
(column.dataType == CalpontSystemCatalog::UDECIMAL))
|
||||
{
|
||||
if (width <= 8)
|
||||
{
|
||||
// errno is initialized and set in convertDecimalString
|
||||
llVal = Convertor::convertDecimalString(
|
||||
field, fieldLength, column.scale );
|
||||
}
|
||||
else
|
||||
if (LIKELY(width == datatypes::MAXDECIMALWIDTH))
|
||||
{
|
||||
bool saturate = false;
|
||||
bigllVal = dataconvert::string_to_ll<int128_t>(string(field), saturate);
|
||||
// TODO MCOL-641 check saturate
|
||||
}
|
||||
else if (width <= 8)
|
||||
{
|
||||
// errno is initialized and set in convertDecimalString
|
||||
llVal = Convertor::convertDecimalString(
|
||||
field, fieldLength, column.scale );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user