Re: [HACKERS] pg_upgrade failed if view contain natural left join condition
От | David G. Johnston |
---|---|
Тема | Re: [HACKERS] pg_upgrade failed if view contain natural left join condition |
Дата | |
Msg-id | CAKFQuwb+mYszQhDS9f_dqRrk1=Pe-S6D=XMkAXcDf4ykKPmgKQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] pg_upgrade failed if view contain natural left join condition (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] pg_upgrade failed if view contain natural left join condition
|
Список | pgsql-hackers |
tushar <tushar.ahuja@enterprisedb.com> writes:
> postgres=# create table t(n int);
> CREATE TABLE
> postgres=# create table t1(a int);
> CREATE TABLE
> postgres=# create view ttt1 as SELECT e.n FROM t e NATURAL LEFT JOIN t1 d;
> CREATE VIEW
You realize of course that that's a pretty useless join definition.
Still, yes, we do need to reverse-list the view with correct syntax.
Probably t LEFT JOIN t1 ON TRUE would do it.
Per the docs:
"If there are no common column names, NATURAL behaves like CROSS JOIN."
I'm being a bit pedantic here but since NATURAL is a replacement for "ON/USING" it would seem more consistent to describe it, when no matching columns are found, as "behaves like specifying ON TRUE" instead. Maybe "behaves like specifying ON TRUE, causing a CROSS JOIN to occur instead."
I find it a bit strange, though not surprising, that it doesn't devolve to "ON FALSE".
David J.
В списке pgsql-hackers по дате отправления: