diff --git a/source/common/src/tdataformat.c b/source/common/src/tdataformat.c index 179c1449fe..5d1694ab90 100644 --- a/source/common/src/tdataformat.c +++ b/source/common/src/tdataformat.c @@ -1197,11 +1197,16 @@ void tRowGetKey(SRow *row, SRowKey *key) { for (int32_t i = 0; i < row->numOfPKs; i++) { key->pks[i].type = indices[i].type; + uint8_t *tdata = data + indices[i].offset; + if (row->flag >> 4) { + tdata += tGetI16v(tdata, NULL); + } + if (IS_VAR_DATA_TYPE(indices[i].type)) { - key->pks[i].pData = data + indices[i].offset; + key->pks[i].pData = tdata; key->pks[i].pData += tGetU32v(key->pks[i].pData, &key->pks[i].nData); } else { - memcpy(&key->pks[i].val, data + indices[i].offset, tDataTypes[indices[i].type].bytes); + memcpy(&key->pks[i].val, tdata, tDataTypes[indices[i].type].bytes); } } } diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index d84d9c2999..e8b1f870c3 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -75,6 +75,8 @@ void *destroySttBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo) { taosArrayDestroy(pLoadInfo->info.pFirstKey); taosArrayDestroy(pLoadInfo->info.pLastKey); taosArrayDestroy(pLoadInfo->info.pCount); + taosArrayDestroy(pLoadInfo->info.pFirstTs); + taosArrayDestroy(pLoadInfo->info.pLastTs); } taosArrayDestroy(pLoadInfo->aSttBlk);