fix memory lead of opfusion, and fix performance deterioration problem.

This commit is contained in:
xiong_xjun
2020-12-12 16:11:37 +08:00
parent 4898995c3a
commit d66a0a3697
3 changed files with 73 additions and 29 deletions

View File

@ -82,9 +82,9 @@ public:
void setPreparedDestReceiver(DestReceiver* preparedDest);
Datum CalFuncNodeVal(Oid functionId, List* args, bool* is_null);
Datum CalFuncNodeVal(Oid functionId, List* args, bool* is_null, Datum* values, bool* isNulls);
Datum EvalSimpleArg(Node* arg, bool* is_null);
Datum EvalSimpleArg(Node* arg, bool* is_null, Datum* values, bool* isNulls);
static void tearDown(OpFusion* opfusion);
@ -201,6 +201,10 @@ private:
int m_targetParamNum;
Datum* m_curVarValue;
bool* m_curVarIsnull;
bool m_is_bucket_rel;
};
@ -230,6 +234,19 @@ private:
bool* m_targetIsnull;
Datum* m_curVarValue;
struct VarLoc {
int varNo;
int scanKeyIndx;
};
VarLoc* m_targetVarLoc;
int m_varNum;
bool* m_curVarIsnull;
int* m_targetConstLoc;
ParamLoc* m_targetParamLoc;