I have PostgreSQL 13. Let's declare the type below, then use it in pl/pgsql:
create type typ1 as ( fld1 int[][] );
do $$ declare a typ1; begin a.fld1 = '{{121,122,123,124}}'; -- OK (1) a.fld1[1] = '{221,222,223,224}'; -- fails (2) a.fld1[1][1] = 321; -- OK (3) a.fld1[1][2] = 322; -- OK unless line (1) is removed end; $$;
In line (2) the plql reports ERROR: invalid input syntax for type integer: "{221,222,223,224}" When lines (1) and (2) are removed, psql reports ERROR: array subscript out of range