I'm writing a system with havy use of composite types. I have a doubt. I'm writing all in functions with language plpgsql. When I read a field from a composite type I must write something like this: status = ((in_customer.customer_data).customer_status).status_id
And this works fine. I need to enclose the base type, but this is not a problem. When I need to assign a value I try to write something like: (in_customer.customer_data).field_a := NULL; But postgresql rise an error: ERROR: syntax error at or near "(" SQL state: 42601 If I dont use parentesis I rise a different error: ERROR: "in_customer.customer_data.field_a" is not a known variable SQL state: 42601 2 questions: Why is the behavior so different in read and in assign. How can I workaround this and update my values? Luca.