Обсуждение: 9.1rc1 bug: extension types not dropped with DROP SCHEMA CASCADE

Поиск
Список
Период
Сортировка

9.1rc1 bug: extension types not dropped with DROP SCHEMA CASCADE

От
Marti Raudsepp
Дата:
Hi!

Creating an extension in a schema and then dropping that schema
apparently doesn't clean up the extension's types:
db=# CREATE SCHEMA foo;
db=# CREATE EXTENSION cube WITH SCHEMA foo;
db=# DROP SCHEMA foo CASCADE;
NOTICE:  drop cascades to 6 other objects
DETAIL:  drop cascades to operator foo.<>(foo.cube,foo.cube)
drop cascades to operator foo.>(foo.cube,foo.cube)
drop cascades to operator foo.<=(foo.cube,foo.cube)
drop cascades to operator foo.>=(foo.cube,foo.cube)
drop cascades to operator foo.<@(foo.cube,foo.cube)
drop cascades to operator foo.~(foo.cube,foo.cube)

It leaves around pg_type entry with typnamespace that doesn't exist in
pg_namespace:

db=# select * from pg_type left join pg_namespace ns on
(typnamespace=ns.oid) where ns.oid is null;
* Record 1
typname        _cube
typnamespace   17074
typowner       10
typlen         -1
...

Also breaks pg_dump: "pg_dump: schema with OID 17074 does not exist"

Regards,
Marti


Re: 9.1rc1 bug: extension types not dropped with DROP SCHEMA CASCADE

От
Thom Brown
Дата:
On 10 September 2011 12:46, Marti Raudsepp <marti@juffo.org> wrote:
> Hi!
>
> Creating an extension in a schema and then dropping that schema
> apparently doesn't clean up the extension's types:
> db=# CREATE SCHEMA foo;
> db=# CREATE EXTENSION cube WITH SCHEMA foo;
> db=# DROP SCHEMA foo CASCADE;
> NOTICE:  drop cascades to 6 other objects
> DETAIL:  drop cascades to operator foo.<>(foo.cube,foo.cube)
> drop cascades to operator foo.>(foo.cube,foo.cube)
> drop cascades to operator foo.<=(foo.cube,foo.cube)
> drop cascades to operator foo.>=(foo.cube,foo.cube)
> drop cascades to operator foo.<@(foo.cube,foo.cube)
> drop cascades to operator foo.~(foo.cube,foo.cube)
>
> It leaves around pg_type entry with typnamespace that doesn't exist in
> pg_namespace:
>
> db=# select * from pg_type left join pg_namespace ns on
> (typnamespace=ns.oid) where ns.oid is null;
> * Record 1
> typname        _cube
> typnamespace   17074
> typowner       10
> typlen         -1
> ...
>
> Also breaks pg_dump: "pg_dump: schema with OID 17074 does not exist"

I can confirm the problem in 9.1rc1, but it's fine when testing it on
9.1.0 which is out on Monday, and Git master.

--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: 9.1rc1 bug: extension types not dropped with DROP SCHEMA CASCADE

От
Dimitri Fontaine
Дата:
Marti Raudsepp <marti@juffo.org> writes:
> Creating an extension in a schema and then dropping that schema
> apparently doesn't clean up the extension's types:

I believe this bug has already been fixed, but the fix is not in rc1.
 http://archives.postgresql.org/pgsql-bugs/2011-08/msg00120.php
http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=660a081c3f6892dae353136fa0883cd3c69813d

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


Re: 9.1rc1 bug: extension types not dropped with DROP SCHEMA CASCADE

От
Marti Raudsepp
Дата:
On Sat, Sep 10, 2011 at 15:44, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote:
> I believe this bug has already been fixed, but the fix is not in rc1.

Thanks Thom and Dimitri, I'll make sure to test my bug reports with
git master in the future. :)

Regards,
Marti