"A. Kretschmer" <andreas.kretschmer@schollglas.com> writes:
> test=# create function check_b() returns bool as $$ declare s int; begin select into s sum(i) from b; if s > 3 then
returntrue; else return false; end if; end;$$ language plpgsql;
> test=*# create table a (i int check(check_b()));
This is unsupported, and will fail in *many* situations not only
pg_dump. A check constraint is only expected to examine the current
row of its table.
regards, tom lane