On 20 Sep 2012, at 20:36, Benedikt Grundmann wrote:select * from (values (1, 2, 3)) a (a, b, c);
> So named anonymous records / row types seem to be strangely second class. Can somebody clarify the restrictions and rationale or even better show a way to do the equivalent of (made up syntax ahead):
>
> select row(1 as a, 2 as b);
Thank you very much. This is very interesting. However this again seems to be strangely limited, because I can neither extract a column from row that was constructed this way in a scalar position nor expand it:
proddb_testing=# select (select x from (values (1, 2, 3)) x (a, b, c));
?column?
----------
(1,2,3)
(1 row)
proddb_testing=# select (select x from (values (1, 2, 3)) x (a, b, c)).*;
ERROR: syntax error at or near "."
LINE 1: select (select x from (values (1, 2, 3)) x (a, b, c)).*;
^
proddb_testing=# select (select x from (values (1, 2, 3)) x (a, b, c)).a;
ERROR: syntax error at or near "."
LINE 1: select (select x from (values (1, 2, 3)) x (a, b, c)).a;
Any more insights?
Thanks,
bene