This commit is contained in:
Hongze Cheng 2022-06-02 05:28:45 +00:00
parent fa1d70824c
commit 6a204ca486
1 changed files with 32 additions and 15 deletions

View File

@ -504,19 +504,38 @@ static void tTSRowNewImpl(SArray *pArray, STSchema *pTSchema, STSRow2 *pRowT, ST
int32_t tTSRowNew(SArray *pArray, STSchema *pTSchema, STSRow2 **ppRow) { int32_t tTSRowNew(SArray *pArray, STSchema *pTSchema, STSRow2 **ppRow) {
int32_t code = 0; int32_t code = 0;
STSRow2 rowT = {0}; STSRow2 rowT = {0};
STSRow2 rowM = {0}; STSRow2 rowK = {0};
uint32_t nData = 0;
// try // try
tTupleTSRowNew(pArray, pTSchema, &rowT); tTSRowNewImpl(pArray, pTSchema, &rowT, &rowK);
tMapTSRowNew(pArray, pTSchema, &rowM, 0);
// decide & build nData = TMIN(rowT.nData, rowK.nData);
if (rowT.nData <= rowM.nData) {
tTupleTSRowNew(pArray, pTSchema, &rowT); *ppRow = (STSRow2 *)taosMemoryMalloc(sizeof(STSRow2));
} else { if (*ppRow == NULL) {
tMapTSRowNew(pArray, pTSchema, &rowM, rowM.flags); code = TSDB_CODE_OUT_OF_MEMORY;
goto _exit;
}
(*ppRow)->nData = 0;
(*ppRow)->pData = NULL;
if (nData) {
(*ppRow)->pData = taosMemoryMalloc(nData);
if ((*ppRow)->pData == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
goto _exit;
}
} }
if (rowT.nData <= rowK.nData) {
(*ppRow)->flags = rowT.flags;
tTSRowNewImpl(pArray, pTSchema, *ppRow, NULL);
} else {
(*ppRow)->flags = rowK.flags;
tTSRowNewImpl(pArray, pTSchema, NULL, *ppRow);
}
_exit:
return code; return code;
} }
@ -1117,9 +1136,7 @@ int32_t tEncodeTag(SEncoder *pEncoder, const STag *pTag) {
return tEncodeBinary(pEncoder, (const uint8_t *)pTag, pTag->len); return tEncodeBinary(pEncoder, (const uint8_t *)pTag, pTag->len);
} }
int32_t tDecodeTag(SDecoder *pDecoder, STag **ppTag) { int32_t tDecodeTag(SDecoder *pDecoder, STag **ppTag) { return tDecodeBinary(pDecoder, (uint8_t **)ppTag, NULL); }
return tDecodeBinary(pDecoder, (uint8_t **)ppTag, NULL);
}
int32_t tTagToValArray(const STag *pTag, SArray **ppArray) { int32_t tTagToValArray(const STag *pTag, SArray **ppArray) {
int32_t code = 0; int32_t code = 0;