Funciones de tabla y reglas de visibilidad

Si utiliza la sintaxis de unión implícita y explícita, la consulta puede generar un error, debido a las reglas de visibilidad. Por ejemplo, la consulta siguiente genera un error:
select * from feeder, feeder2, feeder3 left join
table(tfunc(feeder.i, feeder2.i)) on true where feeder.i =
feeder2.i;
El error se produce porque la función de tabla tfunc está en una cláusula de unión explícita que tiene visibilidad sólo de feeder3 y se correlaciona lateralmente con feeder y feeder2. En este caso, puede especificar sólo las tablas que aparecen a la izquierda de la expresión de unión, o constantes, como argumentos para la función de tabla. Además, la unión por la izquierda no es una correlación lateral de la función de tabla, sino una unión por la izquierda estándar, porque feeder3 no aparece como un argumento de función de tabla. La forma correcta de construir una consulta así es de la siguiente manera:
select * from feeder3 left join (feeder join feeder2 on feeder.i = 
feeder2.i join table(tfunc(feeder.i, feeder2.i)) on true) on true;