Plus simple depuis la pg 9.5, avec l'ajout de array_position()
CREATE TABLE example (
foo TEXT[] NOT NULL check (array_position(foo, null) is null)
);
Vous pouvez également rechercher un tableau vide :
CREATE TABLE example (
foo TEXT[] NOT NULL check (foo <> '{}' and array_position(foo, null) is null)
);