Re: Spurious error messages from pg_restore - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Spurious error messages from pg_restore
Date
Msg-id 522741CA.5080202@gmail.com
Whole thread Raw
In response to Spurious error messages from pg_restore  (Evan Martin <postgresql@realityexists.net>)
Responses Re: Spurious error messages from pg_restore  (Evan Martin <postgresql@realityexists.net>)
List pgsql-general
On 09/04/2013 07:02 AM, Evan Martin wrote:

> Also, even without --clean I get 3 errors:
>
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
> pg_restore: [archiver (db)] Error from TOC entry 6755; 2618 4417788 RULE
> geometry_columns_delete em
> pg_restore: [archiver (db)] could not execute query: ERROR: rule
> "geometry_columns_delete" for relation "geometry_columns" already exists
>      Command was: CREATE RULE geometry_columns_delete AS ON DELETE TO
> geometry_columns DO INSTEAD NOTHING;
>
> (and same for "geometry_columns_insert" and "geometry_columns_update")
>
> This is probably because I have PostGIS installed as an extension (in
> both the source and target databases), which creates those rules. Could
> pg_restore use CREATE OR REPLACE whenever possible to avoid this?

I could see where CREATE OR REPLACE would lead to hidden corruption. It
is in entirely possible for a RULE or FUNCTION to have the same name in
different databases, but have different code under the name. Blindly
REPLACEing would get you past the error messages, however it is possible
that it leads to all sorts of headaches later.


--
Adrian Klaver
adrian.klaver@gmail.com


pgsql-general by date:

Previous
From: Evan Martin
Date:
Subject: Spurious error messages from pg_restore
Next
From: JotaComm
Date:
Subject: Problems with vacuum