Skip to content

Commit d162e60

Browse files
committed
Add code to fix errors when participants is 0
1 parent 610098b commit d162e60

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

src/backend/executor/nodeHash.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4075,13 +4075,6 @@ ExecHashTableDetach(HashJoinTable hashtable)
40754075
{
40764076
ParallelHashJoinState *pstate = hashtable->parallel_state;
40774077

4078-
/*
4079-
* If we're involved in a parallel query, we must either have gotten all
4080-
* the way to PHJ_BUILD_RUN, or joined too late and be in PHJ_BUILD_FREE.
4081-
*/
4082-
Assert(!pstate ||
4083-
BarrierPhase(&pstate->build_barrier) >= PHJ_BUILD_RUN);
4084-
40854078
if (pstate && BarrierPhase(&pstate->build_barrier) == PHJ_BUILD_RUN)
40864079
{
40874080
int i;

src/backend/storage/ipc/barrier.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,17 @@ BarrierArriveAndDetachExceptLast(Barrier *barrier)
220220

221221
return false;
222222
}
223-
Assert(barrier->participants == 1);
224-
++barrier->phase;
225-
SpinLockRelease(&barrier->mutex);
226-
227-
return true;
223+
else if (barrier->participants == 1)
224+
{
225+
++barrier->phase;
226+
SpinLockRelease(&barrier->mutex);
227+
return true;
228+
}
229+
else
230+
{
231+
SpinLockRelease(&barrier->mutex);
232+
return true;
233+
}
228234
}
229235

230236
/*

0 commit comments

Comments
 (0)