Robert Haas <robertmhaas@gmail.com> writes:
> On Fri, Jun 8, 2018 at 12:56 AM, Tom Lane <tgl@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