Merge pull request #27153 from taosdata/fix/TD-31372
adj copyPkVal error code
This commit is contained in:
commit
12d6375de7
|
@ -292,7 +292,7 @@ int32_t buildCtbNameByGroupIdImpl(const char* stbName, uint64_t groupId, char* p
|
|||
|
||||
int32_t trimDataBlock(SSDataBlock* pBlock, int32_t totalRows, const bool* pBoolList);
|
||||
|
||||
void copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc);
|
||||
int32_t copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -1737,7 +1737,11 @@ int32_t copyDataBlock(SSDataBlock* pDst, const SSDataBlock* pSrc) {
|
|||
uint32_t cap = pDst->info.capacity;
|
||||
|
||||
pDst->info = pSrc->info;
|
||||
copyPkVal(&pDst->info, &pSrc->info);
|
||||
code = copyPkVal(&pDst->info, &pSrc->info);
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
uError("%s failed at line %d since %s", __func__, __LINE__, tstrerror(code));
|
||||
return code;
|
||||
}
|
||||
|
||||
pDst->info.capacity = cap;
|
||||
return code;
|
||||
|
@ -1902,9 +1906,11 @@ int32_t blockCopyOneRow(const SSDataBlock* pDataBlock, int32_t rowIdx, SSDataBlo
|
|||
return code;
|
||||
}
|
||||
|
||||
void copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc) {
|
||||
int32_t copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc) {
|
||||
int32_t code = TSDB_CODE_SUCCESS;
|
||||
int32_t lino = 0;
|
||||
if (!IS_VAR_DATA_TYPE(pSrc->pks[0].type)) {
|
||||
return;
|
||||
return code;
|
||||
}
|
||||
|
||||
// prepare the pk buffer if needed
|
||||
|
@ -1912,14 +1918,24 @@ void copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc) {
|
|||
|
||||
p->type = pDst->pks[0].type;
|
||||
p->pData = taosMemoryCalloc(1, pDst->pks[0].nData);
|
||||
QUERY_CHECK_NULL(p->pData, code, lino, _end, terrno);
|
||||
|
||||
p->nData = pDst->pks[0].nData;
|
||||
memcpy(p->pData, pDst->pks[0].pData, p->nData);
|
||||
|
||||
p = &pDst->pks[1];
|
||||
p->type = pDst->pks[1].type;
|
||||
p->pData = taosMemoryCalloc(1, pDst->pks[1].nData);
|
||||
QUERY_CHECK_NULL(p->pData, code, lino, _end, terrno);
|
||||
|
||||
p->nData = pDst->pks[1].nData;
|
||||
memcpy(p->pData, pDst->pks[1].pData, p->nData);
|
||||
|
||||
_end:
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
uError("%s failed at line %d since %s", __func__, lino, tstrerror(code));
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
int32_t createOneDataBlock(const SSDataBlock* pDataBlock, bool copyData, SSDataBlock** pResBlock) {
|
||||
|
@ -1958,7 +1974,11 @@ int32_t createOneDataBlock(const SSDataBlock* pDataBlock, bool copyData, SSDataB
|
|||
}
|
||||
}
|
||||
|
||||
copyPkVal(&pDstBlock->info, &pDataBlock->info);
|
||||
code = copyPkVal(&pDstBlock->info, &pDataBlock->info);
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
uError("%s failed at line %d since %s", __func__, __LINE__, tstrerror(code));
|
||||
return code;
|
||||
}
|
||||
|
||||
if (copyData) {
|
||||
code = blockDataEnsureCapacity(pDstBlock, pDataBlock->info.rows);
|
||||
|
|
|
@ -1917,14 +1917,21 @@ static int32_t getBufIncForNewRow(SSortHandle* pHandle, int32_t dstRowIndex, SSD
|
|||
}
|
||||
|
||||
static int32_t initMergeSup(SBlkMergeSupport* pSup, SArray* pBlockList, int32_t tsOrder, int32_t tsSlotId, SBlockOrderInfo* pPkOrderInfo) {
|
||||
int32_t code = TSDB_CODE_SUCCESS;
|
||||
int32_t lino = 0;
|
||||
memset(pSup, 0, sizeof(SBlkMergeSupport));
|
||||
|
||||
int32_t numOfBlocks = taosArrayGetSize(pBlockList);
|
||||
|
||||
pSup->aRowIdx = taosMemoryCalloc(numOfBlocks, sizeof(int32_t));
|
||||
QUERY_CHECK_NULL(pSup->aRowIdx, code, lino, _end, terrno);
|
||||
|
||||
pSup->aTs = taosMemoryCalloc(numOfBlocks, sizeof(int64_t*));
|
||||
QUERY_CHECK_NULL(pSup->aTs, code, lino, _end, terrno);
|
||||
|
||||
pSup->tsOrder = tsOrder;
|
||||
pSup->aBlks = taosMemoryCalloc(numOfBlocks, sizeof(SSDataBlock*));
|
||||
QUERY_CHECK_NULL(pSup->aBlks, code, lino, _end, terrno);
|
||||
|
||||
for (int32_t i = 0; i < numOfBlocks; ++i) {
|
||||
SSDataBlock* pBlock = taosArrayGetP(pBlockList, i);
|
||||
|
@ -1935,7 +1942,12 @@ static int32_t initMergeSup(SBlkMergeSupport* pSup, SArray* pBlockList, int32_t
|
|||
}
|
||||
|
||||
pSup->pPkOrder = pPkOrderInfo;
|
||||
return TSDB_CODE_SUCCESS;
|
||||
|
||||
_end:
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
qError("%s failed at line %d since %s", __func__, lino, tstrerror(code));
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
static void cleanupMergeSup(SBlkMergeSupport* pSup) {
|
||||
|
|
Loading…
Reference in New Issue