diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c index 16f5755777..bc00799b96 100644 --- a/src/backend/access/nbtree/nbtsort.c +++ b/src/backend/access/nbtree/nbtsort.c @@ -1256,6 +1256,15 @@ _bt_begin_parallel(BTBuildState *buildstate, bool isconcurrent, int request) Assert(request > 0); pcxt = CreateParallelContext("postgres", "_bt_parallel_build_main", request, true); + + /* If no DSM segment was available, back out (do serial build) */ + if (pcxt->seg == NULL) + { + DestroyParallelContext(pcxt); + ExitParallelMode(); + return; + } + scantuplesortstates = leaderparticipates ? request + 1 : request; /*