Merge pull request #19571 from taosdata/enh/3.0_planner_optimize
fix: sma optimize memory leak
This commit is contained in:
commit
efaee8c2e0
|
@ -1334,11 +1334,12 @@ static int32_t smaIndexOptApplyIndex(SLogicSubplan* pLogicSubplan, SScanLogicNod
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = replaceLogicNode(pLogicSubplan, pScan->node.pParent, pSmaScan);
|
code = replaceLogicNode(pLogicSubplan, pScan->node.pParent, pSmaScan);
|
||||||
}
|
}
|
||||||
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
|
nodesDestroyNode((SNode*)pScan->node.pParent);
|
||||||
|
}
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void smaIndexOptDestroySmaIndex(void* p) { taosMemoryFree(((STableIndexInfo*)p)->expr); }
|
|
||||||
|
|
||||||
static int32_t smaIndexOptimizeImpl(SOptimizeContext* pCxt, SLogicSubplan* pLogicSubplan, SScanLogicNode* pScan) {
|
static int32_t smaIndexOptimizeImpl(SOptimizeContext* pCxt, SLogicSubplan* pLogicSubplan, SScanLogicNode* pScan) {
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
int32_t nindexes = taosArrayGetSize(pScan->pSmaIndexes);
|
int32_t nindexes = taosArrayGetSize(pScan->pSmaIndexes);
|
||||||
|
@ -1348,8 +1349,6 @@ static int32_t smaIndexOptimizeImpl(SOptimizeContext* pCxt, SLogicSubplan* pLogi
|
||||||
code = smaIndexOptCouldApplyIndex(pScan, pIndex, &pSmaCols);
|
code = smaIndexOptCouldApplyIndex(pScan, pIndex, &pSmaCols);
|
||||||
if (TSDB_CODE_SUCCESS == code && NULL != pSmaCols) {
|
if (TSDB_CODE_SUCCESS == code && NULL != pSmaCols) {
|
||||||
code = smaIndexOptApplyIndex(pLogicSubplan, pScan, pIndex, pSmaCols);
|
code = smaIndexOptApplyIndex(pLogicSubplan, pScan, pIndex, pSmaCols);
|
||||||
taosArrayDestroyEx(pScan->pSmaIndexes, smaIndexOptDestroySmaIndex);
|
|
||||||
pScan->pSmaIndexes = NULL;
|
|
||||||
pCxt->optimized = true;
|
pCxt->optimized = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue