PALAYRET Jacques <jacques.palayret@xxxxxxxx> writes: > For me, one of the two following things should be true : either the hint (in case of a lateral error) is incomplete or the 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