Re: Asynchronous MergeAppend - Mailing list pgsql-hackers

From Matheus Alcantara
Subject Re: Asynchronous MergeAppend
Date
Msg-id DED05POJZS2W.2EZ60AOBMDDAE@gmail.com
Whole thread Raw
In response to Re: Asynchronous MergeAppend  (Alexander Pyhalov <a.pyhalov@postgrespro.ru>)
List pgsql-hackers
On Tue Nov 18, 2025 at 4:14 AM -03, Alexander Pyhalov wrote:
> Updated the first patch.
>
Thanks for the new version. Some new comments.

v7-0002-MergeAppend-should-support-Async-Foreign-Scan-subpla.patch:

1. Should be "nasyncplans" instead of "nplans"? ExecInitAppend use
"nasyncplans" to allocate the as_asyncresults array.

+        mergestate->ms_asyncresults = (TupleTableSlot **)
+            palloc0(nplans * sizeof(TupleTableSlot *));
+

2. I think that this comment should be updated. IIUC ms_valid_subplans
may not be all subplans because classify_matching_subplans() may move
async ones to ms_valid_asyncplans. Is that right?

/*
 * If we've yet to determine the valid subplans then do so now.  If
 * run-time pruning is disabled then the valid subplans will always be
 * set to all subplans.
 */

3. This code comment should also mention the Assert(!bms_is_member(...));?

+    /* The result should be a TupleTableSlot or NULL. */
+    Assert(slot == NULL || IsA(slot, TupleTableSlot));
+    Assert(!bms_is_member(areq->request_index, node->ms_has_asyncresults));

4. It's worth include bms_num_members(node->ms_needrequest) <= 0 check
on ExecMergeAppendAsyncRequest() as an early return? IIUC it would avoid
the bms_is_member(), bms_next_member() and bms_is_empty(needrequest)
calls.

ExecMergeAppendAsyncRequest(MergeAppendState *node, int mplan)
        Bitmapset  *needrequest;
        int                     i;

+       if (bms_num_members(node->ms_needrequest) <= 0)
+               return false;
+

I'm attaching a diff with some cosmetic changes of indentation and
comments. Feel free to include on the patch or not.

--
Matheus Alcantara
EDB: http://www.enterprisedb.com


Attachment

pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Issue with logical replication slot during switchover
Next
From: Bruce Momjian
Date:
Subject: Re: 10% drop in code line count in PG 17