Na verdade, isso é antiquado sintaxe para CROSS JOIN. Equivalente formal:
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
A consulta não produz um produto cartesiano, mas age como uma junção interna. Isso ocorre porque ele tem um oculto referência entre duas partes de junção, neste caso alias
t
. Esse tipo de junção é conhecido como LATERAL JOIN
. Para a documentação
:Se uma das partes de uma junção for uma função, ela será tratada como lateral por padrão.