The following bug has been logged online: Bug reference: 5857 Logged by: Stuart Bishop Email address: stu...@stuartbishop.net PostgreSQL version: 8.4.6 Operating system: Ubuntu 10.10 Description: pg_restore --clean dropping type too soon Details:
"pg_restore --clean" appears to have an ordering problem, where a custom type is being dropped before some functions that use that custom type as a parameter, which fails. $ psql -d foo -f /usr/share/postgresql/8.4/contrib/debversion.sql > /dev/null psql:/usr/share/postgresql/8.4/contrib/debversion.sql:28: NOTICE: return type debversion is only a shell psql:/usr/share/postgresql/8.4/contrib/debversion.sql:34: NOTICE: argument type debversion is only a shell psql:/usr/share/postgresql/8.4/contrib/debversion.sql:40: NOTICE: return type debversion is only a shell psql:/usr/share/postgresql/8.4/contrib/debversion.sql:46: NOTICE: argument type debversion is only a shell $ pg_dump --format=c foo | pg_restore --clean | grep debversion [...] DROP FUNCTION public.debversion(character); DROP TYPE public.debversion CASCADE; DROP FUNCTION public.debversionsend(debversion); [...] The relevant part of debversion.sql seems to be: CREATE TYPE debversion; CREATE OR REPLACE FUNCTION debversionin(cstring) RETURNS debversion AS 'textin' LANGUAGE 'internal' IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION debversionout(debversion) RETURNS cstring AS 'textout' LANGUAGE 'internal' IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION debversionrecv(internal) RETURNS debversion AS 'textrecv' LANGUAGE 'internal' STABLE STRICT; CREATE OR REPLACE FUNCTION debversionsend(debversion) RETURNS bytea AS 'textsend' LANGUAGE 'internal' STABLE STRICT; CREATE TYPE debversion ( LIKE = text, INPUT = debversionin, OUTPUT = debversionout, RECEIVE = debversionrecv, SEND = debversionsend, -- make it a non-preferred member of string type category CATEGORY = 'S', PREFERRED = false ); -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs