bocap wrote >>> (rec[1]).t1 := 1; You need to stay one-level higher and re-build the entire typ entry then assign it back to the array at the same position. rec[1] = (1, rec[1].t2)::typ; David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/Equivalent-syntax-of-PL-SQL-using-array-in-PL-pgSQL-tp5778355p5778364.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general