select * from test_xyz2() ; -- 3 columns, but 1 should be correct?
select b from test_xyz2() ; -- error
select x from test_xyz2() ; -- never declared column
All three of these stem from:
If the function is defined to return a composite type, the table function produces a column for each attribute of the composite type.
Table(composite) == “setof composite”. (Though it seems to not be explicitly documented in that way, it explains the observed behavior)
David J.