Bruce Momjian <bruce@momjian.us> writes:
> but doing this to illustrate ROWS FROM is going to be complex.
You're right that the only suitable core function is going to be
json[b]_to_recordset, but I don't see why you can't extend the
existing example for that. Something like
# select * from rows from (json_to_recordset('[{"a":1,"b":"foo"},{"a":"2","c":"bar"}]') as (x int, y text),
generate_series(1,3))as x(a,b,s) ;
a | b | s
---+-----+---
1 | foo | 1
2 | | 2
| | 3
(3 rows)
would illustrate all the principles.
regards, tom lane