1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-01 06:46:55 +03:00

MCOL-697 Limit the return length for LONGBLOB

For LONGBLOB the string return length was 4GB for functions which got
converted to -1 and then to 20. This patch sets it to just under 2GB
which we use for LONGBLOB everywhere else.
This commit is contained in:
Andrew Hutchings
2017-05-03 21:30:25 +01:00
parent de06c48b6c
commit e03267ae4b

View File

@ -2233,7 +2233,15 @@ CalpontSystemCatalog::ColType colType_MysqlToIDB (const Item* item)
break;
case STRING_RESULT:
ct.colDataType = CalpontSystemCatalog::VARCHAR;
ct.colWidth = item->max_length;
// MCOL-697 the longest TEXT we deal with is 2100000000 so
// limit to that. Otherwise for LONGBLOB ct.colWidth ends
// up being -1 and demons eat your data and first born
// (or you just get truncated to 20 bytes with the 'if'
// below)
if (item->max_length < 2100000000)
ct.colWidth = item->max_length;
else
ct.colWidth = 2100000000;
// force token
if (item->type() == Item::FUNC_ITEM)
{