Should something similar to the following be possible in PG 8.0.3? create type foo_t as ( c1 int, c2 int ); create table tab ( name varchar not null, foos foo_t[] ); The response I get is: ERROR: type "foo_t[]" does not exist The create type documentation says that postgres silently creates an array type for each base type with an underscore prepended to the base name. That makes it sound like the following should work: create table tab ( name varchar not null, foos _foo_t ); ERROR: type "_foo_t" does not exist How can I create a table containing an array of items of a created type? -K ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match