“4fa5121c7245eb7a8fef3c8739698f5ffe37bcf6”上不存在“source/dnode/mgmt/sm/src/smWorker.c”
提交 41a2b0e8 编写于 作者: C Cary Xu

chore: append kv row to block data

上级 74223b34
...@@ -1058,6 +1058,7 @@ static int32_t tBlockDataAppendTPRow(SBlockData *pBlockData, STSRow *pRow, STSch ...@@ -1058,6 +1058,7 @@ static int32_t tBlockDataAppendTPRow(SBlockData *pBlockData, STSRow *pRow, STSch
int32_t iTColumn = 1; int32_t iTColumn = 1;
STColumn *pTColumn = (iTColumn < pTSchema->numOfCols) ? &pTSchema->columns[iTColumn] : NULL; STColumn *pTColumn = (iTColumn < pTSchema->numOfCols) ? &pTSchema->columns[iTColumn] : NULL;
void *pBitmap = pRow->statis ? tdGetBitmapAddrTp(pRow, pTSchema->flen) : NULL;
for (int32_t iColData = 0; iColData < pBlockData->nColData; iColData++) { for (int32_t iColData = 0; iColData < pBlockData->nColData; iColData++) {
SColData *pColData = &((SColData *)pBlockData->aColData->pData)[iColData]; SColData *pColData = &((SColData *)pBlockData->aColData->pData)[iColData];
...@@ -1076,8 +1077,8 @@ static int32_t tBlockDataAppendTPRow(SBlockData *pBlockData, STSRow *pRow, STSch ...@@ -1076,8 +1077,8 @@ static int32_t tBlockDataAppendTPRow(SBlockData *pBlockData, STSRow *pRow, STSch
SColVal cv = {.cid = pTColumn->colId, .type = pTColumn->type}; SColVal cv = {.cid = pTColumn->colId, .type = pTColumn->type};
if (pRow->statis) { if (pRow->statis) {
TDRowValT vt; TDRowValT vt = TD_VTYPE_MAX;
tdGetBitmapValTypeII(tdGetBitmapAddrTp(pRow, pTSchema->flen), iTColumn - 1, &vt); tdGetBitmapValTypeII(pBitmap, iTColumn - 1, &vt);
if (vt == TD_VTYPE_NORM) { if (vt == TD_VTYPE_NORM) {
cv.flag = CV_FLAG_VALUE; cv.flag = CV_FLAG_VALUE;
...@@ -1128,6 +1129,10 @@ _exit: ...@@ -1128,6 +1129,10 @@ _exit:
static int32_t tBlockDataAppendKVRow(SBlockData *pBlockData, STSRow *pRow, STSchema *pTSchema) { static int32_t tBlockDataAppendKVRow(SBlockData *pBlockData, STSRow *pRow, STSchema *pTSchema) {
int32_t code = 0; int32_t code = 0;
col_id_t kvIter = 0;
col_id_t nKvCols = tdRowGetNCols(pRow) - 1;
void *pColIdx = TD_ROW_COL_IDX(pRow);
void *pBitmap = tdGetBitmapAddrKv(pRow, tdRowGetNCols(pRow));
int32_t iTColumn = 1; int32_t iTColumn = 1;
STColumn *pTColumn = (iTColumn < pTSchema->numOfCols) ? &pTSchema->columns[iTColumn] : NULL; STColumn *pTColumn = (iTColumn < pTSchema->numOfCols) ? &pTSchema->columns[iTColumn] : NULL;
...@@ -1144,46 +1149,48 @@ static int32_t tBlockDataAppendKVRow(SBlockData *pBlockData, STSRow *pRow, STSch ...@@ -1144,46 +1149,48 @@ static int32_t tBlockDataAppendKVRow(SBlockData *pBlockData, STSRow *pRow, STSch
if (code) goto _exit; if (code) goto _exit;
} else { } else {
ASSERT(pTColumn->type == pColData->type); ASSERT(pTColumn->type == pColData->type);
ASSERT(pTColumn->colId == pColData->cid);
// SColVal cv = {.cid = pTColumn->colId, .type = pTColumn->type}; SColVal cv = {.cid = pTColumn->colId, .type = pTColumn->type};
TDRowValT vt = TD_VTYPE_NONE; // default is NONE
// if (pRow->statis) { SKvRowIdx *pKvIdx = NULL;
// TDRowValT vt;
// tdGetBitmapValTypeII(tdGetBitmapAddrTp(pRow, pTSchema->flen), iTColumn - 1, &vt); while (kvIter < nKvCols) {
pKvIdx = (SKvRowIdx *)POINTER_SHIFT(pColIdx, kvIter * sizeof(SKvRowIdx));
// if (vt == TD_VTYPE_NORM) { if (pKvIdx->colId == pTColumn->colId) {
// cv.flag = CV_FLAG_VALUE; tdGetBitmapValTypeII(pBitmap, kvIter, &vt);
++kvIter;
// if (IS_VAR_DATA_TYPE(pTColumn->type)) { break;
// void *pData = pRow->data + *(int32_t *)(pRow->data + pTColumn->offset); } else if (pKvIdx->colId > pTColumn->colId) {
// cv.value.nData = varDataLen(pData); vt = TD_VTYPE_NONE;
// cv.value.pData = varDataVal(pData); break;
// } else { } else {
// memcpy(&cv.value.val, pRow->data + pTColumn->offset, pTColumn->bytes); ++kvIter;
// } }
}
// code = tColDataAppendValue(pColData, &cv);
// if (code) goto _exit; if (vt == TD_VTYPE_NORM) {
// } else if (vt == TD_VTYPE_NONE) { cv.flag = CV_FLAG_VALUE;
// code = tColDataAppendValue(pColData, &COL_VAL_NONE(pColData->cid, pColData->type));
// if (code) goto _exit; void *pData = POINTER_SHIFT(pRow, pKvIdx->offset);
// } else if (vt == TD_VTYPE_NULL) { if (IS_VAR_DATA_TYPE(pTColumn->type)) {
// code = tColDataAppendValue(pColData, &COL_VAL_NULL(pColData->cid, pColData->type)); cv.value.nData = varDataLen(pData);
// if (code) goto _exit; cv.value.pData = varDataVal(pData);
// } else { } else {
// ASSERT(0); memcpy(&cv.value.val, pData, pTColumn->bytes);
// } }
// } else {
// cv.flag = CV_FLAG_VALUE; code = tColDataAppendValue(pColData, &cv);
if (code) goto _exit;
// if (IS_VAR_DATA_TYPE(pTColumn->type)) { } else if (vt == TD_VTYPE_NONE) {
// void *pData = pRow->data + *(int32_t *)(pRow->data + pTColumn->offset); code = tColDataAppendValue(pColData, &COL_VAL_NONE(pColData->cid, pColData->type));
// cv.value.nData = varDataLen(pData); if (code) goto _exit;
// cv.value.pData = varDataVal(pData); } else if (vt == TD_VTYPE_NULL) {
// } else { code = tColDataAppendValue(pColData, &COL_VAL_NULL(pColData->cid, pColData->type));
// memcpy(&cv.value.val, pRow->data + pTColumn->offset, pT if (code) goto _exit;
// } } else {
// } ASSERT(0);
}
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册