From: | Oleg Lebedev <olebedev(at)waterford(dot)org> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Josh Berkus <josh(at)agliodbs(dot)com>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Nested JOINs - upgrade to 7.1.2 |
Date: | 2001-08-17 18:19:52 |
Message-ID: | 3B7D6048.530CCD96@waterford.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
I think Tom was right and the problem with nested joins is caused by the
outdated installation of my PostgreSQL.
So, I am trying to upgrade to 7.1.2 and when I use:
pg_dumpall -o > file.bac
I get an error saying:
dumpRules(): SELECT failed for table setmedias. Explanation from backend:
'ERROR: cache lookup of attribute 5 in relation 23945 failed"
As I understand setmedias table corresponds to relation 23945, but I dropped
it a long time ago. How should remove this relation pointer?
thanks,
Oleg
Tom Lane wrote:
> "Josh Berkus" <josh(at)agliodbs(dot)com> writes:
> > Second, you can't alias a JOINed set of tables;
>
> Actually you can, according to my reading of SQL92:
>
> <table reference> ::=
> <table name> [ [ AS ] <correlation name>
> [ <left paren> <derived column list> <right paren> ] ]
> | <derived table> [ AS ] <correlation name>
> [ <left paren> <derived column list> <right paren> ]
> | <joined table>
>
> <derived table> ::= <table subquery>
>
> <table subquery> ::= <subquery>
>
> <subquery> ::= <left paren> <query expression> <right paren>
>
> <query expression> ::=
> <non-join query expression>
> | <joined table>
>
> <joined table> ::=
> <cross join>
> | <qualified join>
> | <left paren> <joined table> <right paren>
>
> <qualified join> ::=
> <table reference> [ NATURAL ] [ <join type> ] JOIN
> <table reference> [ <join specification> ]
>
> So a parenthesized <qualified join> is a <derived table> and may
> be followed by [ AS ] <correlation name>.
>
> 7.1 gets this right. 7.0's very preliminary implementation of JOIN
> syntax did not. (It had a number of other bugs too, IIRC.)
>
> The spec's grammar is horribly badly written: it's ambiguous whether the
> parentheses should be parsed as part of a second-level <joined table>
> which would imply that a correlation name would NOT be accepted.
> It took a fair amount of work to derive a grammar that was unambiguous
> and still accepted everything...
>
> regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Patterson | 2001-08-17 18:23:17 | Finding table constraints |
Previous Message | Jeff Eckermann | 2001-08-17 14:18:10 | Re: how to use record type |