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)