On 11/12/21 18:57, Alvaro Herrera wrote:
> Here's a new version. Many of the old complaints have been fixed;
> particularly, the handling of partitioned tables is now much cleaner and
> straightforward. Amit Langote helped considerably in getting this part
> to shape -- thanks for that. Amit also helped correct the EvalPlanQual
> behavior, which wasn't quite up to snuff.
>
Thanks!
> There are a few things that can still be improved here. For one, I need
> to clean up the interactions with table AM (and thus heapam.c etc).
> Secondarily, and I'm now not sure that I really want to do it, is change
> the representation for executor: instead of creating a fake join between
> target and source, perhaps we should have just source, and give
> optimizer a separate query to fetch tuples from target.
>
When you say you're not sure you want to change this, is that because
you don't have time for that, or because you think the current approach
is better?
> What I did do is change how the target table is represented from parse
> analysis to executor. For example, in the original code, there were two
> RTEs that represented the target table; that is gone. Now the target
> table is always just the query's resultRelation. This removes a good
> number of ugly hacks that had been objected to.
>
> I'll park this in the January commitfest now.
>
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company