fix(query): taosd crash in stream when use max(cast())
TD-17155
This commit is contained in:
parent
5fc505f8f9
commit
f8ff52b451
|
@ -228,7 +228,7 @@ int32_t colDataMergeCol(SColumnInfoData* pColumnInfoData, uint32_t numOfRow1, ui
|
||||||
uint32_t finalNumOfRows = numOfRow1 + numOfRow2;
|
uint32_t finalNumOfRows = numOfRow1 + numOfRow2;
|
||||||
if (IS_VAR_DATA_TYPE(pColumnInfoData->info.type)) {
|
if (IS_VAR_DATA_TYPE(pColumnInfoData->info.type)) {
|
||||||
// Handle the bitmap
|
// Handle the bitmap
|
||||||
if (finalNumOfRows > *capacity) {
|
if (finalNumOfRows > *capacity || numOfRow1 == 0) {
|
||||||
char* p = taosMemoryRealloc(pColumnInfoData->varmeta.offset, sizeof(int32_t) * (numOfRow1 + numOfRow2));
|
char* p = taosMemoryRealloc(pColumnInfoData->varmeta.offset, sizeof(int32_t) * (numOfRow1 + numOfRow2));
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
@ -262,7 +262,7 @@ int32_t colDataMergeCol(SColumnInfoData* pColumnInfoData, uint32_t numOfRow1, ui
|
||||||
memcpy(pColumnInfoData->pData + oldLen, pSource->pData, len);
|
memcpy(pColumnInfoData->pData + oldLen, pSource->pData, len);
|
||||||
pColumnInfoData->varmeta.length = len + oldLen;
|
pColumnInfoData->varmeta.length = len + oldLen;
|
||||||
} else {
|
} else {
|
||||||
if (finalNumOfRows > *capacity) {
|
if (finalNumOfRows > *capacity || numOfRow1 == 0) {
|
||||||
ASSERT(finalNumOfRows * pColumnInfoData->info.bytes);
|
ASSERT(finalNumOfRows * pColumnInfoData->info.bytes);
|
||||||
char* tmp = taosMemoryRealloc(pColumnInfoData->pData, finalNumOfRows * pColumnInfoData->info.bytes);
|
char* tmp = taosMemoryRealloc(pColumnInfoData->pData, finalNumOfRows * pColumnInfoData->info.bytes);
|
||||||
if (tmp == NULL) {
|
if (tmp == NULL) {
|
||||||
|
|
Loading…
Reference in New Issue