1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-4042 cleanup after MODA

This commit is contained in:
David Hall
2020-06-05 11:52:44 -05:00
parent 7c5f83f8e8
commit 4f5b56b492
2 changed files with 108 additions and 12 deletions

View File

@ -480,3 +480,83 @@ void ModaData::unserialize(messageqcpp::ByteStream& bs)
}
}
void ModaData::cleanup()
{
if (!fMap)
return;
switch ((execplan::CalpontSystemCatalog::ColDataType)fReturnType)
{
case execplan::CalpontSystemCatalog::TINYINT:
clear<int8_t>();
deleteMap<int8_t>();
break;
case execplan::CalpontSystemCatalog::SMALLINT:
clear<int16_t>();
deleteMap<int16_t>();
break;
case execplan::CalpontSystemCatalog::MEDINT:
case execplan::CalpontSystemCatalog::INT:
clear<int32_t>();
deleteMap<int32_t>();
break;
case execplan::CalpontSystemCatalog::BIGINT:
clear<int64_t>();
deleteMap<int64_t>();
break;
case execplan::CalpontSystemCatalog::DECIMAL:
case execplan::CalpontSystemCatalog::UDECIMAL:
switch (fColWidth)
{
case 1:
clear<int8_t>();
deleteMap<int8_t>();
break;
case 2:
clear<int16_t>();
deleteMap<int16_t>();
break;
case 4:
clear<int32_t>();
deleteMap<int32_t>();
break;
default:
clear<int64_t>();
deleteMap<int64_t>();
break;
}
break;
case execplan::CalpontSystemCatalog::UTINYINT:
clear<uint8_t>();
deleteMap<uint8_t>();
break;
case execplan::CalpontSystemCatalog::USMALLINT:
clear<uint16_t>();
deleteMap<uint16_t>();
break;
case execplan::CalpontSystemCatalog::UMEDINT:
case execplan::CalpontSystemCatalog::UINT:
clear<uint32_t>();
deleteMap<uint32_t>();
break;
case execplan::CalpontSystemCatalog::UBIGINT:
clear<uint64_t>();
deleteMap<uint64_t>();
break;
case execplan::CalpontSystemCatalog::FLOAT:
clear<float>();
deleteMap<float>();
break;
case execplan::CalpontSystemCatalog::DOUBLE:
clear<double>();
deleteMap<double>();
break;
case execplan::CalpontSystemCatalog::LONGDOUBLE:
clear<long double>();
deleteMap<long double>();
break;
default:
throw std::runtime_error("ModaData::unserialize with bad data type");
break;
}
}