From bb5c0b3921c7daa6c1ccb39f50f867a05bcda361 Mon Sep 17 00:00:00 2001 From: SetnameWang <1944647332@qq.com> Date: Tue, 8 Apr 2025 20:34:07 +0800 Subject: [PATCH] fix executor borrow memory memory setting error --- src/gausskernel/runtime/executor/nodeHash.cpp | 5 +---- src/gausskernel/runtime/executor/nodeSort.cpp | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/gausskernel/runtime/executor/nodeHash.cpp b/src/gausskernel/runtime/executor/nodeHash.cpp index 8516eaea36..74bb868e0f 100644 --- a/src/gausskernel/runtime/executor/nodeHash.cpp +++ b/src/gausskernel/runtime/executor/nodeHash.cpp @@ -228,10 +228,6 @@ HashState* ExecInitHash(Hash* node, EState* estate, int eflags) /* * create state structure */ - if (node->plan.operatorMemKB[0] == 0) { - node->plan.operatorMemKB[0] = SET_NODEMEM(node->plan.operatorMemKB[0], node->plan.dop); - } - node->plan.operatorMemKB[0] += GetAvailRackMemory(node->plan.dop); hashstate = makeNode(HashState); hashstate->ps.plan = (Plan*)node; hashstate->ps.state = estate; @@ -319,6 +315,7 @@ HashJoinTable ExecHashTableCreate(Hash* node, List* hashOperators, bool keepNull int nkeys; int i; int64 local_work_mem = SET_NODEMEM(node->plan.operatorMemKB[0], node->plan.dop); + local_work_mem += GetAvailRackMemory(node->plan.dop); int64 max_mem = (node->plan.operatorMaxMem > 0) ? SET_NODEMEM(node->plan.operatorMaxMem, node->plan.dop) : 0; ListCell* ho = NULL; ListCell* hc = NULL; diff --git a/src/gausskernel/runtime/executor/nodeSort.cpp b/src/gausskernel/runtime/executor/nodeSort.cpp index acedc57b00..485ee78b35 100644 --- a/src/gausskernel/runtime/executor/nodeSort.cpp +++ b/src/gausskernel/runtime/executor/nodeSort.cpp @@ -74,6 +74,7 @@ static TupleTableSlot* ExecSort(PlanState* state) PlanState* plan_state = NULL; TupleDesc tup_desc = NULL; int64 sort_mem = SET_NODEMEM(plan_node->plan.operatorMemKB[0], plan_node->plan.dop); + sort_mem += GetAvailRackMemory(plan_node->plan.dop); int64 max_mem = (plan_node->plan.operatorMaxMem > 0) ? SET_NODEMEM(plan_node->plan.operatorMaxMem, plan_node->plan.dop) : 0; /* init unique sort state at the first time */ @@ -227,10 +228,6 @@ SortState* ExecInitSort(Sort* node, EState* estate, int eflags) /* * create state structure */ - if (node->plan.operatorMemKB[0] == 0) { - node->plan.operatorMemKB[0] = SET_NODEMEM(node->plan.operatorMemKB[0], node->plan.dop); - } - node->plan.operatorMemKB[0] += GetAvailRackMemory(node->plan.dop); SortState* sortstate = makeNode(SortState); sortstate->ss.ps.plan = (Plan*)node; sortstate->ss.ps.state = estate; -- Gitee