Re: PostgreSQL : error hint for LATERAL join

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: PostgreSQL : error hint for LATERAL join
Дата
Msg-id 267695.1649686806@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: PostgreSQL : error hint for LATERAL join  (PALAYRET Jacques <jacques.palayret@meteo.fr>)
Ответы Re: PostgreSQL : error hint for LATERAL join  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-general
PALAYRET Jacques <jacques.palayret@meteo.fr> writes:
> For me, one of the two following things should be true : either the hint (in case of a lateral error) is incomplete
orthe possibility of " cross join lateral " should be removed.  

The reason the hint is worded the way it is is a practical one: the other
possibilities are not drop-in syntactic replacements.

Given

    CREATE TABLE t (x float8);

all five of these are syntactically legal (with or without the
implied LATERAL):

    SELECT * FROM t, sin(x);
    SELECT * FROM t CROSS JOIN sin(x);
    SELECT * FROM t JOIN sin(x) ON true;
    SELECT * FROM t INNER JOIN sin(x) ON true;
    SELECT * FROM t LEFT JOIN sin(x) ON true;

The only way to get to the error in question is to write something
like

    SELECT * FROM t FULL JOIN sin(x) ON true;

If that's what you have, then changing FULL to INNER or LEFT will
produce a syntactically legal query; changing it to CROSS will not
unless you make additional changes (which'd be hard if the ON
condition were nontrivial).

Also, if we were trying to be completionist, we'd have to somehow
work in the comma and implicit-INNER syntaxes, which would surely
make the hint a confusing mess.

Another way to look at it is that there are only two allowed
semantic behaviors here: INNER and LEFT joins.  The fact that
there's more than one way to spell an inner join is a historical
accident.

            regards, tom lane



В списке pgsql-general по дате отправления:

Предыдущее
От: Pankaj Gupta
Дата:
Сообщение: DBlink extension and behavior of dblink_get_connections()
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: PostgreSQL : error hint for LATERAL join