more
This commit is contained in:
parent
fa1d70824c
commit
6a204ca486
|
@ -502,21 +502,40 @@ static void tTSRowNewImpl(SArray *pArray, STSchema *pTSchema, STSRow2 *pRowT, ST
|
||||||
|
|
||||||
// try-decide-build
|
// try-decide-build
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -922,7 +941,7 @@ void debugCheckTags(STag *pTag) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(pTag->nTag <= 128 && pTag->nTag >= 0);
|
ASSERT(pTag->nTag <= 128 && pTag->nTag >= 0);
|
||||||
ASSERT(pTag->ver <= 512 && pTag->ver >= 0); // temp condition for pTag->ver
|
ASSERT(pTag->ver <= 512 && pTag->ver >= 0); // temp condition for pTag->ver
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t tPutTagVal(uint8_t *p, STagVal *pTagVal, int8_t isJson) {
|
static int32_t tPutTagVal(uint8_t *p, STagVal *pTagVal, int8_t isJson) {
|
||||||
|
@ -1035,7 +1054,7 @@ int32_t tTagNew(SArray *pArray, int32_t version, int8_t isJson, STag **ppTag) {
|
||||||
debugPrintSTag(*ppTag, __func__, __LINE__);
|
debugPrintSTag(*ppTag, __func__, __LINE__);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
debugCheckTags(*ppTag); // TODO: remove this line after debug
|
debugCheckTags(*ppTag); // TODO: remove this line after debug
|
||||||
return code;
|
return code;
|
||||||
|
|
||||||
_err:
|
_err:
|
||||||
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue