| From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
|---|---|
| To: | Rafia Sabih <rafia(dot)pghackers(at)gmail(dot)com> |
| Cc: | Yilin Zhang <jiezhilove(at)126(dot)com>, KENAN YILMAZ <kenan(dot)yilmaz(at)localus(dot)com(dot)tr>, Andy Fan <zhihuifan1213(at)163(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Bypassing cursors in postgres_fdw to enable parallel plans |
| Date: | 2026-07-28 08:59:57 |
| Message-ID: | CA+TgmoYrkH1OT-QzvJ=jLqfEr0S1OxeWsXimLkardpWMw12=Ww@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Jul 23, 2026 at 6:03 AM Rafia Sabih <rafia(dot)pghackers(at)gmail(dot)com> wrote:
>> I think you can add a parameter to pgfdw_cancel_query and
>> pgfdw_cancel_query_end, a PgFdwConnState. The callers in connection.c
>> have a ConnCacheEntry and can pass &entry->state, and the callers in
>> postgres_fdw.c have a PgFdwScanState and can pass fsstate->conn_state.
>>
> Yes, you are right we can do that. However, looking at it more closely, zeroing the conn_state which includes pendingAreq doesn't look right. Because in pgfdw_abort_cleanup, when the check is done for pendingAreq, it would always be false, since we have cleared it already. So, wouldn't doing active_scan = NULL in pgfdw_cancel_query_end make more sense here rather than zeroing...?
I'm not entirely sure I understand the question. I'd generally
recommend clearing individual fields of a structure over using memset
to zeroing the entire thing. On that note, I wonder if the memset that
the current code uses in pgfdw_abort_cleanup() is buggy -- how can it
justify zeroing the *entire* state entry? I guess maybe that works
today because the only member of PgFdwConnState is pendingAreq, but it
doesn't seem like the right thing in general.
--
Robert Haas
EDB: http://www.enterprisedb.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dean Rasheed | 2026-07-28 09:07:37 | Re: Fix RETURNING side effects for FOR PORTION OF leftover rows |
| Previous Message | Tender Wang | 2026-07-28 08:58:58 | Re: remove_useless_joins vs. bug #19560 |