Las expresiones después de select debe evaluar a un solo valor. Desde jsonb_to_recordset devuelve un conjunto de filas y columnas, no puede usarlo allí.
La solución es un cross join lateral , que le permite expandir una fila en varias filas usando una función. Eso le da filas individuales que select puede actuar sobre. Por ejemplo:
select *
from journal j
cross join lateral
jsonb_to_recordset(j.data#>'{context, data, files}') as d(id int, name text)
where j.id = 'ap32bbofopvo7pjgo07g'
Tenga en cuenta que #>> operador
devuelve tipo text y el #> el operador devuelve el tipo jsonb . Como jsonb_to_recordset espera jsonb como su primer parámetro estoy usando #> .
Véalo funcionando en rextester.com