Come hai notato correttamente, non puoi vedere le righe modificate nel CTE nel SELECT
principale . Questo è documentato
:
Quindi dovresti usare RETURNING
.
Immagino che il modo più semplice sarebbe non usare una funzione, ma eseguire json_build_object
nella query principale e farlo funzionare sui CTE parents
e children
.