Table A has a CHECK constraint testing boolean function F.
Function F has a SELECT from Table A.
In my manual build script, I create the table, then the function, and then at the very end of the script to I do an ALTER TABLE ADD CHECK.
pg_dump appears to put the CHECK constraint as a clause in the CREATE TABLE statement. Now I'm in trouble, because whichever of the table or the function is read in first by pg_restore refers to an object that hasn't been created yet. The restore fails.
I suppose I can replace the CHECK with an explicit trigger (that uses an exception) and then pg_dump will get the creation sequence correct. Is there another way?