9.0: plpgsql eror when restoring a database as a non superuser - Mailing list pgsql-general

From stefan
Subject 9.0: plpgsql eror when restoring a database as a non superuser
Date
Msg-id j7u1df$ul2$1@dough.gmane.org
Whole thread Raw
Responses Re: 9.0: plpgsql eror when restoring a database as a non superuser  (Adrian Klaver <adrian.klaver@gmail.com>)
List pgsql-general
Hi,

we run a setup with multiple non superusers who have the option of
restoring their databases in a semi-automated fashion.

In 9.0, we run into the following error:

pg_restore: [archiver (db)] Error while PROCESSING TOC:


pg_restore: [archiver (db)] Error from TOC entry 1038; 2612 11574
PROCEDURAL LANGUAGE plpgsql postgres

pg_restore: [archiver (db)] could not execute query: ERROR:  must be
owner of language plpgsql

    Command was: CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;

Pg_restore thus returns an error value, causing trouble in our procedures.

In its simplest form, the error can be reproduced as follows:

createdb test
pg_dump -Fc test > test.psql
pg_restore -d test < test.psql

The database is created on the same postgresql server as on which it is
restored. It is therefore no upgrade issue, as in this thread:
http://archives.postgresql.org/pgsql-general/2010-12/msg00499.php

Is there a way that this error can be prevented when restoring a
database as a non superuser?

I am already aware of a workaround using -l and -L, but I would strongly
prefer the elegance of letting the bare psql tools do their job properly.

Cheers,
Stefan.

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: adding a column takes FOREVER!
Next
From: Devrim GÜNDÜZ
Date:
Subject: Re: Anyone using the solaris 11 precompiled binaries on opensolaris snv_134