Robert Haas <robertmh...@gmail.com> writes: > On Fri, Jun 8, 2018 at 12:56 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: >> The pre-v11 incarnation of those functions took a single AppendRelInfo, >> specifying an exact translation from one parent relid to one child >> relid. The fundamental problem I've got with the current code, entirely >> independently of any performance issues, is that it's completely unclear >> -- or at least undocumented -- which translation(s) are supposed to occur.
> I don't understand this complaint. Before, the code took one > AppendRelInfo, and according to you, it was clear what was supposed to > happen. Now it takes an array of AppendRelInfos and, according to > you, it's completely unclear. Yet that seems, to me at least, to be a > straightforward generalization. If 1 AppendRelInfo is an adequate > specification of one translations, why are N AppendRelInfos not an > adequate specification of N translations? Because the relationships between the transforms are unclear. Are we supposed to apply those N transformations to the expression in sequence? It doesn't look to me like that's what the code does. I think --- I might be wrong --- that the code is relying on the transformations to be non-overlapping, that is a change made by any one of them cannot be further affected by another one. This is, however, undocumented. regards, tom lane