On Thu, Dec 10, 2009 at 11:54 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Thu, Dec 10, 2009 at 1:46 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> My reading of the spec is that USING (and therefore NATURAL) is defined
>>> to join identically named columns. =A0Therefore, renaming one of the in=
put
>>> columns as the OP did *should* indeed *must* break the view. =A0The pro=
blem
>>> is not how to make it work, it's how to give an error message that
>>> doesn't look like an internal failure.
>
>> That seems ugly and unnecessary. =A0I think we might be able to define
>> ourselves out of this problem. =A0We don't guarantee (and have never
>> guaranteed) that selecting from a stored view will produce the same
>> results as re-executing the original query. =A0For example, * refers the
>> list of columns at definition-time, not execution-time,
>
> Um, aren't you contradicting yourself there?
Not that I can see.
> The problem with USING is that it is not merely a join condition but
> affects the set of columns emitted by the join. =A0It can't be converted
> to a simple ON without changing the semantics, and I don't believe we
> should try.
The OP seemed to be pretty clear on what the semantics should be, and
I'm not confused either. Why are you? :-)
...Robert