On Fri, Jun 3, 2011 at 1:19 PM, Tom Lane <[email protected]> wrote: > Robert Haas <[email protected]> writes: >> On Fri, Jun 3, 2011 at 10:59 AM, Tom Lane <[email protected]> wrote: >>> Personally my advice is to avoid USING: it wasn't one of the SQL >>> committee's better ideas. > >> I don't understand why we can't just translate the USING into some >> equivalent construct that doesn't involve USING. > > There is no directly equivalent construct, because USING changes the > shape of the output table (the join has one fewer output column than > would exist without USING). > > Now, if the query doesn't involve any explicit reference to "joinalias.*", > we could probably fake it with some ugly thing involving > COALESCE(leftcol, rightcol) ... but I don't think people will want to > read that, and anyway the idea falls apart as soon as you do have a > whole-row reference.
Well, it gets internally translated to COALESCE(leftcol, rightcol) anyway, so I hardly think it's too ugly to print it out that way. It's what we're doing; more, it'll work instead of erroring out. This is not the first complaint we've gotten about this problem. I'm not seeing the problem with whole-row references; can you elaborate on that? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-bugs mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
