fix(query):init block info's pointer
This commit is contained in:
parent
472d03f118
commit
300b30d7c5
|
@ -1670,6 +1670,8 @@ int32_t assignOneDataBlock(SSDataBlock* dst, const SSDataBlock* src) {
|
|||
int32_t code = 0;
|
||||
|
||||
dst->info = src->info;
|
||||
dst->info.pks[0].pData = NULL;
|
||||
dst->info.pks[1].pData = NULL;
|
||||
dst->info.rows = 0;
|
||||
dst->info.capacity = 0;
|
||||
|
||||
|
@ -1707,6 +1709,8 @@ int32_t assignOneDataBlock(SSDataBlock* dst, const SSDataBlock* src) {
|
|||
|
||||
uint32_t cap = dst->info.capacity;
|
||||
dst->info = src->info;
|
||||
dst->info.pks[0].pData = NULL;
|
||||
dst->info.pks[1].pData = NULL;
|
||||
dst->info.capacity = cap;
|
||||
return code;
|
||||
}
|
||||
|
@ -1737,6 +1741,8 @@ int32_t copyDataBlock(SSDataBlock* pDst, const SSDataBlock* pSrc) {
|
|||
uint32_t cap = pDst->info.capacity;
|
||||
|
||||
pDst->info = pSrc->info;
|
||||
pDst->info.pks[0].pData = NULL;
|
||||
pDst->info.pks[1].pData = NULL;
|
||||
code = copyPkVal(&pDst->info, &pSrc->info);
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
uError("%s failed at line %d since %s", __func__, __LINE__, tstrerror(code));
|
||||
|
@ -1854,6 +1860,8 @@ int32_t blockCopyOneRow(const SSDataBlock* pDataBlock, int32_t rowIdx, SSDataBlo
|
|||
}
|
||||
|
||||
pBlock->info = pDataBlock->info;
|
||||
pBlock->info.pks[0].pData = NULL;
|
||||
pBlock->info.pks[1].pData = NULL;
|
||||
pBlock->info.rows = 0;
|
||||
pBlock->info.capacity = 0;
|
||||
|
||||
|
@ -1916,20 +1924,20 @@ int32_t copyPkVal(SDataBlockInfo* pDst, const SDataBlockInfo* pSrc) {
|
|||
// prepare the pk buffer if needed
|
||||
SValue* p = &pDst->pks[0];
|
||||
|
||||
p->type = pDst->pks[0].type;
|
||||
p->pData = taosMemoryCalloc(1, pDst->pks[0].nData);
|
||||
p->type = pSrc->pks[0].type;
|
||||
p->pData = taosMemoryCalloc(1, pSrc->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->nData = pSrc->pks[0].nData;
|
||||
memcpy(p->pData, pSrc->pks[0].pData, p->nData);
|
||||
|
||||
p = &pDst->pks[1];
|
||||
p->type = pDst->pks[1].type;
|
||||
p->pData = taosMemoryCalloc(1, pDst->pks[1].nData);
|
||||
p->type = pSrc->pks[1].type;
|
||||
p->pData = taosMemoryCalloc(1, pSrc->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);
|
||||
p->nData = pSrc->pks[1].nData;
|
||||
memcpy(p->pData, pSrc->pks[1].pData, p->nData);
|
||||
|
||||
_end:
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
|
@ -1951,6 +1959,8 @@ int32_t createOneDataBlock(const SSDataBlock* pDataBlock, bool copyData, SSDataB
|
|||
}
|
||||
|
||||
pDstBlock->info = pDataBlock->info;
|
||||
pDstBlock->info.pks[0].pData = NULL;
|
||||
pDstBlock->info.pks[1].pData = NULL;
|
||||
|
||||
pDstBlock->info.rows = 0;
|
||||
pDstBlock->info.capacity = 0;
|
||||
|
|
Loading…
Reference in New Issue