Re: Extensions support for pg_dump, patch v27

Dimitri Fontaine <dimitri@2ndquadrant.fr>

From: Dimitri Fontaine <dimitri@2ndQuadrant.fr>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Dimitri Fontaine <dimitri@2ndQuadrant.fr>, Itagaki Takahiro <itagaki.takahiro@gmail.com>, "David E. Wheeler" <david@kineticode.com>, David Fetter <david@fetter.org>, PostgreSQL-Hackers <pgsql-hackers@postgresql.org>
Date: 2011-01-26T15:39:38Z
Lists: pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> writes:

> Dimitri Fontaine <dimitri@2ndQuadrant.fr> writes:
>> The missing entry in pg_depend is the reason why the extension is not
>> part of the dump.  We could fix that using a LEFT JOIN here and COALESCE
>> to force the namespace as pg_catalog.  Is that not a kludge?
>
> Yes, it is.  Why is the pg_depend entry missing?

See src/backend/catalog/pg_depend.c

		/*
		 * If the referenced object is pinned by the system, there's no real
		 * need to record dependencies on it.  This saves lots of space in
		 * pg_depend, so it's worth the time taken to check.
		 */

Certainly, pg_catalog is pinned.

select * 
  from pg_depend
 where refobjid = (select oid
                    from pg_namespace
                   where nspname = 'pg_catalog')
  and refclassid = 'pg_namespace'::regclass;

 classid | objid | objsubid | refclassid | refobjid | refobjsubid | deptype 
---------+-------+----------+------------+----------+-------------+---------
       0 |     0 |        0 |       2615 |       11 |           0 | p
(1 row)

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support