Re: BUG #2274: Error in 'CREATE DOMAIN' SQL command in dump file - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #2274: Error in 'CREATE DOMAIN' SQL command in dump file
Date
Msg-id 3364.1140545484@sss.pgh.pa.us
Whole thread Raw
In response to BUG #2274: Error in 'CREATE DOMAIN' SQL command in dump file  ("Alexander Galler" <galler@kuzbass.net>)
List pgsql-bugs
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

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #2277: Can't Open Relation when returning data from a stored procedure
Next
From: "Qingqing Zhou"
Date:
Subject: FATAL: semctl(1672698088, 12, SETVAL, 0) failed