Re: Spurious error messages from pg_restore

From: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
To: Evan Martin <postgresql(at)realityexists(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Spurious error messages from pg_restore
Date: 2013-09-04 14:20:58
Message-ID: 522741CA.5080202@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)klaver(at)gmail(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message JotaComm 2013-09-04 14:31:40 Problems with vacuum
Previous Message Evan Martin 2013-09-04 14:02:52 Spurious error messages from pg_restore