Robert Haas <robertmhaas@gmail.com> writes:
> On Sat, Feb 11, 2012 at 11:11 AM, Andrew Dunstan
> <adunstan@postgresql.org> wrote:
>> Do we actually need to bother with these cases?
> In flatten_join_alias_vars_mutator(), we've got a RangeTblEntry to
> work with. I think the column names are to be found in the alias
> and/or eref attributes of the RangeTblEntry.
The eref names are the ones to use. alias just records the original AS
clause (if any) attached to the RTE, which is mostly useful only for
reverse-listing the query.
> In adjust_appendrel_attrs_mutator(), we have a list, translated_vars,
> whose order matches the column order of the parent rel. If we had the
> parent's RangeTblEntry, we could probably precede as in the previous
> case. But the AppendRelInfo only contains the index of the RT. Maybe
> we can figure out a way to use rt_fetch to get the RangeTblEntry
> itself, but that requires a pointer to the range table itself, which
> we haven't got.
This is surely fixable by passing a bit more information down. If you
(Andrew) have something that covers everything but this issue, pass it
over and I'll take a whack at it.
regards, tom lane