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);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -1737,7 +1737,11 @@ int32_t copyDataBlock(SSDataBlock* pDst, const SSDataBlock* pSrc) {
|
||||||
uint32_t cap = pDst->info.capacity;
|
uint32_t cap = pDst->info.capacity;
|
||||||
|
|
||||||
pDst->info = pSrc->info;
|
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;
|
pDst->info.capacity = cap;
|
||||||
return code;
|
return code;
|
||||||
|
@ -1902,9 +1906,11 @@ int32_t blockCopyOneRow(const SSDataBlock* pDataBlock, int32_t rowIdx, SSDataBlo
|
||||||
return code;
|
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)) {
|
if (!IS_VAR_DATA_TYPE(pSrc->pks[0].type)) {
|
||||||
return;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepare the pk buffer if needed
|
// prepare the pk buffer if needed
|
||||||
|
@ -1912,14 +1918,24 @@ void copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc) {
|
||||||
|
|
||||||
p->type = pDst->pks[0].type;
|
p->type = pDst->pks[0].type;
|
||||||
p->pData = taosMemoryCalloc(1, pDst->pks[0].nData);
|
p->pData = taosMemoryCalloc(1, pDst->pks[0].nData);
|
||||||
|
QUERY_CHECK_NULL(p->pData, code, lino, _end, terrno);
|
||||||
|
|
||||||
p->nData = pDst->pks[0].nData;
|
p->nData = pDst->pks[0].nData;
|
||||||
memcpy(p->pData, pDst->pks[0].pData, p->nData);
|
memcpy(p->pData, pDst->pks[0].pData, p->nData);
|
||||||
|
|
||||||
p = &pDst->pks[1];
|
p = &pDst->pks[1];
|
||||||
p->type = pDst->pks[1].type;
|
p->type = pDst->pks[1].type;
|
||||||
p->pData = taosMemoryCalloc(1, pDst->pks[1].nData);
|
p->pData = taosMemoryCalloc(1, pDst->pks[1].nData);
|
||||||
|
QUERY_CHECK_NULL(p->pData, code, lino, _end, terrno);
|
||||||
|
|
||||||
p->nData = pDst->pks[1].nData;
|
p->nData = pDst->pks[1].nData;
|
||||||
memcpy(p->pData, pDst->pks[1].pData, p->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) {
|
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) {
|
if (copyData) {
|
||||||
code = blockDataEnsureCapacity(pDstBlock, pDataBlock->info.rows);
|
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) {
|
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));
|
memset(pSup, 0, sizeof(SBlkMergeSupport));
|
||||||
|
|
||||||
int32_t numOfBlocks = taosArrayGetSize(pBlockList);
|
int32_t numOfBlocks = taosArrayGetSize(pBlockList);
|
||||||
|
|
||||||
pSup->aRowIdx = taosMemoryCalloc(numOfBlocks, sizeof(int32_t));
|
pSup->aRowIdx = taosMemoryCalloc(numOfBlocks, sizeof(int32_t));
|
||||||
|
QUERY_CHECK_NULL(pSup->aRowIdx, code, lino, _end, terrno);
|
||||||
|
|
||||||
pSup->aTs = taosMemoryCalloc(numOfBlocks, sizeof(int64_t*));
|
pSup->aTs = taosMemoryCalloc(numOfBlocks, sizeof(int64_t*));
|
||||||
|
QUERY_CHECK_NULL(pSup->aTs, code, lino, _end, terrno);
|
||||||
|
|
||||||
pSup->tsOrder = tsOrder;
|
pSup->tsOrder = tsOrder;
|
||||||
pSup->aBlks = taosMemoryCalloc(numOfBlocks, sizeof(SSDataBlock*));
|
pSup->aBlks = taosMemoryCalloc(numOfBlocks, sizeof(SSDataBlock*));
|
||||||
|
QUERY_CHECK_NULL(pSup->aBlks, code, lino, _end, terrno);
|
||||||
|
|
||||||
for (int32_t i = 0; i < numOfBlocks; ++i) {
|
for (int32_t i = 0; i < numOfBlocks; ++i) {
|
||||||
SSDataBlock* pBlock = taosArrayGetP(pBlockList, i);
|
SSDataBlock* pBlock = taosArrayGetP(pBlockList, i);
|
||||||
|
@ -1935,7 +1942,12 @@ static int32_t initMergeSup(SBlkMergeSupport* pSup, SArray* pBlockList, int32_t
|
||||||
}
|
}
|
||||||
|
|
||||||
pSup->pPkOrder = pPkOrderInfo;
|
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) {
|
static void cleanupMergeSup(SBlkMergeSupport* pSup) {
|
||||||
|
|
Loading…
Reference in New Issue