1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-12-20 01:42:27 +03:00

Merge pull request #314 from mariadb-corporation/MCOL-1021

MCOL-1021 Fix dictionary de-duplication cache
This commit is contained in:
David.Hall
2017-11-09 18:00:02 -06:00
committed by GitHub

View File

@@ -628,6 +628,8 @@ int Dctnry::insertDctnry2(Signature& sig)
int rc = 0; int rc = 0;
int write_size; int write_size;
bool lbid_in_token = false; bool lbid_in_token = false;
size_t origSigSize = sig.size;
unsigned char* origSig = sig.signature;
sig.token.bc = 0; sig.token.bc = 0;
@@ -718,6 +720,8 @@ int Dctnry::insertDctnry2(Signature& sig)
} }
} }
sig.size = origSigSize;
sig.signature = origSig;
return NO_ERROR; return NO_ERROR;
} }
@@ -825,8 +829,7 @@ int Dctnry::insertDctnry(const char* buf,
//...Search for the string in our string cache //...Search for the string in our string cache
//if it fits into one block (< 8KB) //if it fits into one block (< 8KB)
if ((m_arraySize < MAX_STRING_CACHE_SIZE) && if (curSig.size <= MAX_SIGNATURE_SIZE)
(curSig.size <= MAX_SIGNATURE_SIZE))
{ {
//Stats::startParseEvent("getTokenFromArray"); //Stats::startParseEvent("getTokenFromArray");
found = getTokenFromArray(curSig); found = getTokenFromArray(curSig);
@@ -1375,8 +1378,7 @@ int Dctnry::updateDctnry(unsigned char* sigValue, int& sigSize,
// Look for string in cache // Look for string in cache
// As long as the string <= 8000 bytes // As long as the string <= 8000 bytes
if ((m_arraySize < MAX_STRING_CACHE_SIZE) && if (sigSize <= MAX_SIGNATURE_SIZE)
(sigSize <= MAX_SIGNATURE_SIZE))
{ {
bool found = false; bool found = false;
found = getTokenFromArray(sig); found = getTokenFromArray(sig);