Field Selection#
For an expression that yields a composite type (row), a specific field of the row can be extracted as expression.field_name.
expression should be in parenthesis (but this can be omitted for table references or positional parameters):
mydb=> SELECT due_for_purchase(3); -- func returns rows with fields (name, num_items_left)
due_for_purchase
------------------
(Pumpkins,10)
(Spinach,19)
(Watermelons,22)
(3 rows)
mydb=> SELECT due_for_purchase(3).name; -- no parenthesis
ERROR: syntax error at or near "."
LINE 1: SELECT due_for_purchase(3).name;
^
mydb=> SELECT (due_for_purchase(3)).name; -- with parenthesis
name
-------------
Pumpkins
Spinach
Watermelons
(3 rows)