diff.txt

text/plain

Filename: diff.txt
Type: text/plain
Part: 0
Message: Re: Asynchronous MergeAppend
diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c
index c89e2d2787f..a2ed5f71a35 100644
--- a/src/backend/executor/nodeAppend.c
+++ b/src/backend/executor/nodeAppend.c
@@ -1198,6 +1198,9 @@ classify_matching_subplans(AppendState *node)
 	}
 
 	/* No valid async subplans identified. */
-	if (!classify_matching_subplans_common(&node->as_valid_subplans, node->as_asyncplans, &node->as_valid_asyncplans))
+	if (!classify_matching_subplans_common(
+										   &node->as_valid_subplans,
+										   node->as_asyncplans,
+										   &node->as_valid_asyncplans))
 		node->as_nasyncremain = 0;
 }
diff --git a/src/backend/executor/nodeMergeAppend.c b/src/backend/executor/nodeMergeAppend.c
index 7db41fbf40f..feb25a813b1 100644
--- a/src/backend/executor/nodeMergeAppend.c
+++ b/src/backend/executor/nodeMergeAppend.c
@@ -533,7 +533,10 @@ classify_matching_subplans(MergeAppendState *node)
 	}
 
 	/* No valid async subplans identified. */
-	if (!classify_matching_subplans_common(&node->ms_valid_subplans, node->ms_asyncplans, &node->ms_valid_asyncplans))
+	if (!classify_matching_subplans_common(
+										   &node->ms_valid_subplans,
+										   node->ms_asyncplans,
+										   &node->ms_valid_asyncplans))
 		node->ms_asyncremain = NULL;
 }
 
@@ -721,11 +724,14 @@ ExecAsyncMergeAppendResponse(AsyncRequest *areq)
 	{
 		/* The ending subplan wouldn't have been pending for a callback. */
 		Assert(!areq->callback_pending);
-		node->ms_asyncremain = bms_del_member(node->ms_asyncremain, areq->request_index);
+		node->ms_asyncremain = bms_del_member(node->ms_asyncremain,
+											  areq->request_index);
 		return;
 	}
 
-	node->ms_has_asyncresults = bms_add_member(node->ms_has_asyncresults, areq->request_index);
+	/* Mark that the async request has a result */
+	node->ms_has_asyncresults = bms_add_member(node->ms_has_asyncresults,
+											   areq->request_index);
 	/* Save result so we can return it. */
 	node->ms_asyncresults[areq->request_index] = slot;
 
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 2bef54550a3..1dc7e9e6145 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -1585,7 +1585,9 @@ GetNeedRequest(PlanState *ps)
 
 /* Common part of classify_matching_subplans() for Append and MergeAppend */
 static inline bool
-classify_matching_subplans_common(Bitmapset **valid_subplans, Bitmapset *asyncplans, Bitmapset **valid_asyncplans)
+classify_matching_subplans_common(Bitmapset **valid_subplans,
+								  Bitmapset *asyncplans,
+								  Bitmapset **valid_asyncplans)
 {
 	Assert(*valid_asyncplans == NULL);