On Tuesday, October 5, 2021, <m...@ft-c.de> wrote: > > 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: https://www.postgresql.org/docs/current/xfunc-sql.html#XFUNC-SQL-TABLE-FUNCTIONS 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.