From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Amit Langote <amitlangote09(at)gmail(dot)com> |
Cc: | Daniel Gustafsson <daniel(at)yesql(dot)se>, Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: partition routing layering in nodeModifyTable.c |
Date: | 2020-10-14 09:04:06 |
Message-ID: | 902a656d-e4f2-70bf-f30f-1796d65791fe@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 14/10/2020 09:44, Amit Langote wrote:
> I like the idea of storing the ResultRelInfo in ForeignScanState, but
> it would be better if we can document the fact that an FDW may not
> reliably access until IterateDirectModify(). That's because, setting
> it in ExecInitForeignScan() will mean *all* result relations must be
> initialized during ExecInitModifyTable(), which defies my
> lazy-ResultRelInfo-initiailization proposal. As to why why I'm
> pushing that proposal, consider that when we'll get the ability to use
> run-time pruning for UPDATE/DELETE with [1], initializing all result
> relations before initializing the plan tree will mean most of those
> ResultRelInfos will be unused, because run-time pruning that occurs
> when the plan tree is initialized (and/or when it is executed) may
> eliminate most but a few result relations.
>
> I've attached a diff to v17-0001 to show one way of delaying setting
> ForeignScanState.resultRelInfo.
The BeginDirectModify function does a lot of expensive things, like
opening a connection to the remote server. If we want to optimize
run-time pruning, I think we need to avoid calling BeginDirectModify for
pruned partitions altogether.
I pushed this without those delay-setting-resultRelInfo changes. But we
can revisit those changes with the run-time pruning optimization patch.
I'll continue with the last couple of patches in this thread.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Bharath Rupireddy | 2020-10-14 09:16:11 | Re: Parallel Inserts in CREATE TABLE AS |
Previous Message | Noah Misch | 2020-10-14 08:46:15 | Re: Loose ends after CVE-2020-14350 (extension installation hazards) |