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-769 Fix data casting issues
Several typos corrupting data, a cleaner method used now
This commit is contained in:
@ -1620,13 +1620,13 @@ uint8_t WE_DMLCommandProc::processBatchInsertBinary(messageqcpp::ByteStream& bs,
|
|||||||
colValue = val8;
|
colValue = val8;
|
||||||
break;
|
break;
|
||||||
case execplan::CalpontSystemCatalog::SMALLINT:
|
case execplan::CalpontSystemCatalog::SMALLINT:
|
||||||
case execplan::CalpontSystemCatalog::DATE:
|
|
||||||
case execplan::CalpontSystemCatalog::USMALLINT:
|
case execplan::CalpontSystemCatalog::USMALLINT:
|
||||||
bs >> val16;
|
bs >> val16;
|
||||||
if (val16 == 0)
|
if (val16 == 0)
|
||||||
valZero = true;
|
valZero = true;
|
||||||
colValue = val16;
|
colValue = val16;
|
||||||
break;
|
break;
|
||||||
|
case execplan::CalpontSystemCatalog::DATE:
|
||||||
case execplan::CalpontSystemCatalog::MEDINT:
|
case execplan::CalpontSystemCatalog::MEDINT:
|
||||||
case execplan::CalpontSystemCatalog::INT:
|
case execplan::CalpontSystemCatalog::INT:
|
||||||
case execplan::CalpontSystemCatalog::UMEDINT:
|
case execplan::CalpontSystemCatalog::UMEDINT:
|
||||||
|
@ -4641,14 +4641,6 @@ StopWatch timer;
|
|||||||
uint64_t curValue = colValueList[(totalRow*i) + j];
|
uint64_t curValue = colValueList[(totalRow*i) + j];
|
||||||
switch (colStructList[i].colType)
|
switch (colStructList[i].colType)
|
||||||
{
|
{
|
||||||
case WriteEngine::WR_INT:
|
|
||||||
tmp32 = curValue;
|
|
||||||
((int*)valArray)[j] = tmp32;
|
|
||||||
break;
|
|
||||||
case WriteEngine::WR_UINT:
|
|
||||||
tmp32 = curValue;
|
|
||||||
((uint32_t*)valArray)[j] = tmp32;
|
|
||||||
break;
|
|
||||||
case WriteEngine::WR_VARBINARY : // treat same as char for now
|
case WriteEngine::WR_VARBINARY : // treat same as char for now
|
||||||
case WriteEngine::WR_CHAR:
|
case WriteEngine::WR_CHAR:
|
||||||
case WriteEngine::WR_BLOB:
|
case WriteEngine::WR_BLOB:
|
||||||
@ -4664,48 +4656,41 @@ StopWatch timer;
|
|||||||
((uint16_t*)valArray)[j] = tmp16;
|
((uint16_t*)valArray)[j] = tmp16;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
case 4:
|
||||||
tmp32 = curValue;
|
tmp32 = curValue;
|
||||||
((uint32_t*)valArray)[j] = tmp32;
|
((uint32_t*)valArray)[j] = tmp32;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 5:
|
||||||
((uint32_t*)valArray)[j] = curValue;
|
case 6:
|
||||||
|
case 7:
|
||||||
|
case 8:
|
||||||
|
((uint64_t*)valArray)[j] = curValue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
case WriteEngine::WR_INT:
|
||||||
|
case WriteEngine::WR_UINT:
|
||||||
case WriteEngine::WR_FLOAT:
|
case WriteEngine::WR_FLOAT:
|
||||||
tmp32 = curValue;
|
tmp32 = curValue;
|
||||||
memcpy(&((float*)valArray)[j], &tmp32, 4);
|
((uint32_t*)valArray)[j] = tmp32;
|
||||||
break;
|
break;
|
||||||
|
case WriteEngine::WR_ULONGLONG:
|
||||||
|
case WriteEngine::WR_LONGLONG:
|
||||||
case WriteEngine::WR_DOUBLE:
|
case WriteEngine::WR_DOUBLE:
|
||||||
memcpy(&((double*)valArray)[j], &curValue, 8);
|
case WriteEngine::WR_TOKEN:
|
||||||
|
((uint64_t*)valArray)[j] = curValue;
|
||||||
break;
|
break;
|
||||||
case WriteEngine::WR_BYTE:
|
case WriteEngine::WR_BYTE:
|
||||||
tmp8 = curValue;
|
|
||||||
((char*)valArray)[j] = tmp8;
|
|
||||||
break;
|
|
||||||
case WriteEngine::WR_UBYTE:
|
case WriteEngine::WR_UBYTE:
|
||||||
tmp8 = curValue;
|
tmp8 = curValue;
|
||||||
((uint8_t*)valArray)[j] = tmp8;
|
((uint8_t*)valArray)[j] = tmp8;
|
||||||
break;
|
break;
|
||||||
case WriteEngine::WR_SHORT:
|
case WriteEngine::WR_SHORT:
|
||||||
tmp16 = curValue;
|
|
||||||
((short*)valArray)[j] = tmp16;
|
|
||||||
break;
|
|
||||||
case WriteEngine::WR_USHORT:
|
case WriteEngine::WR_USHORT:
|
||||||
tmp32 = curValue;
|
tmp16 = curValue;
|
||||||
((uint16_t*)valArray)[j] = tmp16;
|
((uint16_t*)valArray)[j] = tmp16;
|
||||||
break;
|
break;
|
||||||
case WriteEngine::WR_LONGLONG:
|
|
||||||
tmp32 = curValue;
|
|
||||||
((long long*)valArray)[j] = tmp32;
|
|
||||||
break;
|
|
||||||
case WriteEngine::WR_ULONGLONG:
|
|
||||||
((uint64_t*)valArray)[j] = curValue;
|
|
||||||
break;
|
|
||||||
case WriteEngine::WR_TOKEN:
|
|
||||||
memcpy(&((Token*)valArray)[j], &curValue, 8);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user