The following bug has been logged on the website:

Bug reference:      8128
Logged by:          Adrian Vondendriesch
Email address:      adrian.vondendrie...@credativ.de
PostgreSQL version: 9.1.9
Operating system:   Debian GNU/Linux 7.0
Description:        

Hi,

while browsing on bugs.debian.org I saw the following bug:
'pg_upgradecluster
fails with "OLD used in query that is not in a rule"'
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688960).

Because I don't found any reference to that report in pgsql-bugs I report it
by
my self.

Since I have tested it on my own I can confirm it is reproducible:

1. In a 8.4 cluster create a scheme called "old":
> CREATE SCHEME "old";

2. Create a test table:
> CREATE TABLE "old".test(id int);

3. insert some test data:
> INSERT INTO "old".test VALUES (1),(2),(3);

4. dump it with pg_dumpall (9.1):
/usr/lib/postgresql/9.1/bin/pg_dumpall -s > foo

This will produce the following error:
> pg_dump: SQL command failed
> pg_dump: Error message from server: ERROR:  OLD used in query that is not
in a rule
> LINE 1: LOCK TABLE old.test IN ACCESS SHARE MODE
>                    ^
> pg_dump: The command was: LOCK TABLE old.test IN ACCESS SHARE MODE
> pg_dumpall: pg_dump failed on database "postgres", exiting

If pg_dumpall version 8.4 is used, the dump runs smoothly. This is because
pg_dump(all) in version 8.x uses quotes. (2013-04-30 16:24:49 CEST LOG:
statement: LOCK TABLE "old".test IN ACCESS SHARE MODE).

I think it's a bad idea to name a scheme 'old', but it's possible, so it
should be
supported. I saw no clue to resolve that issue in the pg_dump
documentation.

I'm running Debian Wheezy using the apt.postgresql.org repository.

Regards

    - Adrian



-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to