Alexander Galler <galler@kuzbass.net> writes:
>>> psql:test.dump:415: ERROR: type "tsinterval" does not exist
>>
>> I can't duplicate this --- for me, pg_dump produces
>>
>> CREATE DOMAIN address_period_tsi AS public.tsinterval NOT NULL DEFAULT '(-infinity..infinity)'::public.tsinterval;
>>
>> which reloads just fine. Could you provide a more complete example?
> I create database domain_test and use script domain_test.sql. (My
> database template include seg, ltree, tsearch2, pgstattuple).
Thanks for the test case. The reason I missed it is that the bug turns
out to depend on the schema path at the time you create the domain, not
only on what pg_dump does. (It's effectively dumping the default
according to the creation-time search path, rather than the one that
pg_dump wants to use.) I've committed a fix for 8.1.4. In the meantime
you can work around it by setting the search path the way pg_dump wants
at the time you create the domain, ie,
set search_path = my_schema, pg_catalog;
create domain ... default 'foo'::public.ltree;
regards, tom lane