mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Introduce ExecQualAndReset() helper.
It's a common task to evaluate a qual and reset the corresponding expression context. Currently that requires storing the result of the qual eval, resetting the context, and then reacting on the result. As that's awkward several places only reset the context next time through a node. That's not great, so introduce a helper that evaluates and resets. It's a bit ugly that it currently uses MemoryContextReset() instead of ResetExprContext(), but that seems easier than reordering all of executor.h. Author: Andres Freund Discussion: https://postgr.es/m/20180109222544.f7loxrunqh3xjl5f@alap3.anarazel.de
This commit is contained in:
@ -1942,10 +1942,7 @@ ExecScanHashBucket(HashJoinState *hjstate,
|
||||
false); /* do not pfree */
|
||||
econtext->ecxt_innertuple = inntuple;
|
||||
|
||||
/* reset temp memory each time to avoid leaks from qual expr */
|
||||
ResetExprContext(econtext);
|
||||
|
||||
if (ExecQual(hjclauses, econtext))
|
||||
if (ExecQualAndReset(hjclauses, econtext))
|
||||
{
|
||||
hjstate->hj_CurTuple = hashTuple;
|
||||
return true;
|
||||
@ -2002,10 +1999,7 @@ ExecParallelScanHashBucket(HashJoinState *hjstate,
|
||||
false); /* do not pfree */
|
||||
econtext->ecxt_innertuple = inntuple;
|
||||
|
||||
/* reset temp memory each time to avoid leaks from qual expr */
|
||||
ResetExprContext(econtext);
|
||||
|
||||
if (ExecQual(hjclauses, econtext))
|
||||
if (ExecQualAndReset(hjclauses, econtext))
|
||||
{
|
||||
hjstate->hj_CurTuple = hashTuple;
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user