You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-4174 Review/refactor frontend/connector code
This commit is contained in:
committed by
Roman Nozdrin
parent
68244ab957
commit
129d5b5a0f
@ -15,7 +15,6 @@
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "widedecimalutils.h"
|
||||
#include "emptyvaluemanip.h"
|
||||
|
||||
namespace utils
|
||||
@ -81,7 +80,7 @@ void getEmptyRowValue(const execplan::CalpontSystemCatalog::ColDataType colDataT
|
||||
else if (width <= 8)
|
||||
*(uint64_t*)emptyVal = joblist::BIGINTEMPTYROW;
|
||||
else
|
||||
setWideDecimalEmptyValue(*(reinterpret_cast<int128_t*>(emptyVal)));
|
||||
datatypes::Decimal::setWideDecimalEmptyValue(*(reinterpret_cast<int128_t*>(emptyVal)));
|
||||
break;
|
||||
|
||||
//case CalpontSystemCatalog::BINARY:
|
||||
|
@ -29,52 +29,10 @@ namespace utils
|
||||
const uint64_t BINARYNULLVALUEHIGH = 0x8000000000000000ULL;
|
||||
const uint64_t BINARYEMPTYVALUELOW = 1ULL;
|
||||
const uint64_t BINARYEMPTYVALUEHIGH = 0x8000000000000000ULL;
|
||||
const uint8_t MAXLENGTH16BYTES = 42;
|
||||
const uint8_t MAXLENGTH8BYTES = 23;
|
||||
|
||||
const int128_t minInt128 = int128_t(0x8000000000000000LL) << 64;
|
||||
const int128_t maxInt128 = (int128_t(0x7FFFFFFFFFFFFFFFLL) << 64) + 0xFFFFFFFFFFFFFFFFLL;
|
||||
|
||||
inline bool isWideDecimalNullValue(const int128_t& val)
|
||||
{
|
||||
const uint64_t* ptr = reinterpret_cast<const uint64_t*>(&val);
|
||||
return (ptr[0] == BINARYNULLVALUELOW && ptr[1] == BINARYNULLVALUEHIGH);
|
||||
}
|
||||
|
||||
inline bool isWideDecimalEmptyValue(const int128_t& val)
|
||||
{
|
||||
const uint64_t* ptr = reinterpret_cast<const uint64_t*>(&val);
|
||||
return (ptr[0] == BINARYEMPTYVALUELOW && ptr[1] == BINARYEMPTYVALUEHIGH);
|
||||
}
|
||||
|
||||
inline void setWideDecimalNullValue(int128_t& val)
|
||||
{
|
||||
uint64_t* ptr = reinterpret_cast<uint64_t*>(&val);
|
||||
ptr[0] = BINARYNULLVALUELOW;
|
||||
ptr[1] = BINARYNULLVALUEHIGH;
|
||||
}
|
||||
|
||||
inline void setWideDecimalEmptyValue(int128_t& val)
|
||||
{
|
||||
uint64_t* ptr = reinterpret_cast<uint64_t*>(&val);
|
||||
ptr[0] = BINARYEMPTYVALUELOW;
|
||||
ptr[1] = BINARYEMPTYVALUEHIGH;
|
||||
}
|
||||
|
||||
inline void setWideDecimalNullValue(int128_t* val)
|
||||
{
|
||||
uint64_t* ptr = reinterpret_cast<uint64_t*>(val);
|
||||
ptr[0] = BINARYNULLVALUELOW;
|
||||
ptr[1] = BINARYNULLVALUEHIGH;
|
||||
}
|
||||
|
||||
inline void setWideDecimalEmptyValue(int128_t* val)
|
||||
{
|
||||
uint64_t* ptr = reinterpret_cast<uint64_t*>(val);
|
||||
ptr[0] = BINARYEMPTYVALUELOW;
|
||||
ptr[1] = BINARYEMPTYVALUEHIGH;
|
||||
}
|
||||
|
||||
inline void int128Max(int128_t& val)
|
||||
{
|
||||
uint64_t* ptr = reinterpret_cast<uint64_t*>(&val);
|
||||
|
Reference in New Issue
Block a user