1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

MCOL-670 Fix UPDATE with BLOB/TEXT

* Don't cache > 8000 bytes during update
* Fix PrimProc case where token is used more than once
This commit is contained in:
Andrew Hutchings
2017-04-19 22:45:23 +01:00
parent dce4b11437
commit 785e6c91bd
2 changed files with 19 additions and 6 deletions

View File

@ -1374,7 +1374,9 @@ int Dctnry::updateDctnry(unsigned char* sigValue, int& sigSize,
sig.size = sigSize;
// Look for string in cache
if (m_arraySize < MAX_STRING_CACHE_SIZE)
// As long as the string <= 8000 bytes
if ((m_arraySize < MAX_STRING_CACHE_SIZE) &&
(sigSize <= MAX_SIGNATURE_SIZE))
{
bool found = false;
found = getTokenFromArray(sig);
@ -1389,7 +1391,9 @@ int Dctnry::updateDctnry(unsigned char* sigValue, int& sigSize,
rc = insertDctnry(sigSize, sigValue, token);
//Add the new signature and token into cache
if (m_arraySize < MAX_STRING_CACHE_SIZE)
//As long as the string is <= 8000 bytes
if ((m_arraySize < MAX_STRING_CACHE_SIZE) &&
(sigSize <= MAX_SIGNATURE_SIZE))
{
Signature sig;
sig.size = sigSize;