One or another author of commit
5bcf389ec seems to have thought that
computing an offset from a NULL pointer would yield another NULL pointer.
There may possibly be architectures where that works, but common machines
don't work like that. Per a quick code review of places calling
shm_toc_lookup and not using noError = false.
{
SharedHashInfo *shared_info;
+ /* might not be there ... */
shared_info = (SharedHashInfo *)
shm_toc_lookup(pwcxt->toc, node->ps.plan->plan_node_id, true);
- node->hinstrument = &shared_info->hinstrument[ParallelWorkerNumber];
+ if (shared_info)
+ node->hinstrument = &shared_info->hinstrument[ParallelWorkerNumber];
+ else
+ node->hinstrument = NULL;
}
/*