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
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 |