Tom Lane wrote:
> That test is a no-op in the case where hashp->alloc in fact points to
> palloc. But it doesn't always point there --- see shmem_alloc.
Perhaps it would be a net win to change ShmemAlloc() to elog(ERROR) on
out-of-memory? A fair few of the ShmemAlloc() call sites don't bother to
check the return value anyway, and a few more just elog(ERROR). For the
few cases when we do need to do some cleanup, PG_TRY() could be used, or
we could just provide a variant of ShmemAlloc() that returns NULL on OOM
and could be used when error recovery is required.
-Neil