Commit
816e336f12ecabdc834d4cc31bcf966b2dd323dc added the wrong error
check to async.c; sending restrictions is restricted to the leader,
not altogether unsafe.
Commit
3bd909b220930f21d6e15833a17947be749e7fde added ExecShutdownNode
to traverse the planstate tree and call shutdown functions, but made
a Gather node, the only node that actually has such a function, abort
the tree traversal, which is wrong.
#include <unistd.h>
#include <signal.h>
+#include "access/parallel.h"
#include "access/slru.h"
#include "access/transam.h"
#include "access/xact.h"
Notification *n;
MemoryContext oldcontext;
- if (IsInParallelMode())
- elog(ERROR, "cannot send notifications during a parallel operation");
+ if (IsParallelWorker())
+ elog(ERROR, "cannot send notifications from a parallel worker");
if (Trace_notify)
elog(DEBUG1, "Async_Notify(%s)", channel);
switch (nodeTag(node))
{
case T_GatherState:
- {
- ExecShutdownGather((GatherState *) node);
- return true;
- }
+ ExecShutdownGather((GatherState *) node);
break;
default:
break;