index 16f57557776908519ea376f8ea2a5803acc50131..bc00799b964b91437ef932bd3ddd6c9c781e9283 100644 (file)
@@ -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;
/*