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-267 DML support
* DML writes for multi-block dictionary (blob) now works * PrimProc fixed so that the first block in multi-block is read correctly * Performance optimisation (removed string copy into stack) for new dictionary entries
This commit is contained in:
@ -1587,7 +1587,7 @@ int ChunkManager::calculateHeaderSize(int width)
|
||||
int rowsPerExtent = BRMWrapper::getInstance()->getExtentRows();
|
||||
int rowsPerFile = rowsPerExtent * extentsPerFile;
|
||||
int stringsPerBlock = 8180 / (width + 2); // 8180 = 8192 - 12
|
||||
//TODO: temporary fix for Blob
|
||||
// BLOB is 1 string per block
|
||||
if (stringsPerBlock == 0)
|
||||
stringsPerBlock = 1;
|
||||
int blocksNeeded = rowsPerFile / stringsPerBlock;
|
||||
|
@ -135,7 +135,7 @@ WErrorCodes::WErrorCodes() : fErrorCodes()
|
||||
|
||||
// Dictionary error
|
||||
fErrorCodes[ERR_DICT_NO_SPACE_INSERT] = " no space for a dictionary insert";
|
||||
fErrorCodes[ERR_DICT_SIZE_GT_8000] = " the dictionary size was >8000";
|
||||
fErrorCodes[ERR_DICT_SIZE_GT_2G] = " the dictionary size was > 2GB";
|
||||
fErrorCodes[ERR_DICT_NO_OP_DELETE] = " in the dictionary no op delete";
|
||||
fErrorCodes[ERR_DICT_NO_OFFSET_DELETE] = " a dictionary bad Delete offset";
|
||||
fErrorCodes[ERR_DICT_INVALID_HDR] = " a dictionary bad Delete Hdr";
|
||||
|
@ -231,7 +231,7 @@ namespace WriteEngine
|
||||
// Dictionary error
|
||||
//--------------------------------------------------------------------------
|
||||
const int ERR_DICT_NO_SPACE_INSERT= ERR_DCTNRYBASE+ 1; // ins no space
|
||||
const int ERR_DICT_SIZE_GT_8000 = ERR_DCTNRYBASE+ 2; // ins size >8000
|
||||
const int ERR_DICT_SIZE_GT_2G = ERR_DCTNRYBASE+ 2; // ins size >8000
|
||||
const int ERR_DICT_NO_OP_DELETE = ERR_DCTNRYBASE+ 3; // del no op
|
||||
const int ERR_DICT_NO_OFFSET_DELETE=ERR_DCTNRYBASE+ 4; // del bad offset
|
||||
const int ERR_DICT_INVALID_HDR = ERR_DCTNRYBASE+ 5; // Delete Hdr
|
||||
|
@ -290,7 +290,7 @@ namespace WriteEngine
|
||||
|
||||
struct DctnryTuple /** @brief Dictionary Tuple struct*/
|
||||
{
|
||||
unsigned char sigValue[MAX_SIGNATURE_SIZE]; /** @brief dictionary signature value*/
|
||||
unsigned char *sigValue; /** @brief dictionary signature value*/
|
||||
int sigSize; /** @brief dictionary signature size */
|
||||
Token token; /** @brief dictionary token */
|
||||
bool isNull;
|
||||
|
@ -45,12 +45,12 @@ namespace WriteEngine
|
||||
struct Token {
|
||||
uint64_t op : 10; // ordinal position within a block
|
||||
uint64_t fbo : 36; // file block number
|
||||
uint64_t spare : 18; // spare
|
||||
uint64_t bc : 18; // block count
|
||||
Token() // constructor, set to null value
|
||||
{
|
||||
op = 0x3FE;
|
||||
fbo = 0xFFFFFFFFFLL;
|
||||
spare = 0x3FFFF;
|
||||
bc = 0x3FFFF;
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user