BUG #8128: pg_dump (>= 9.1) failed while dumping a scheme named "old" from PostgreSQL 8.4 - Mailing list pgsql-bugs

From Adrian.Vondendriesch@credativ.de
Subject BUG #8128: pg_dump (>= 9.1) failed while dumping a scheme named "old" from PostgreSQL 8.4
Date
Msg-id E1UXCfT-0006k7-K4@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #8128: pg_dump (>= 9.1) failed while dumping a scheme named "old" from PostgreSQL 8.4  (Adrian Vondendriesch <Adrian.Vondendriesch@credativ.de>)
Re: BUG #8128: pg_dump (>= 9.1) failed while dumping a scheme named "old" from PostgreSQL 8.4  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      8128
Logged by:          Adrian Vondendriesch
Email address:      Adrian.Vondendriesch@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=3D688960).

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

pgsql-bugs by date:

Previous
From: "Bansal, Pradeep"
Date:
Subject: Re: ISSUE after upgrading to POSTGRES 8.4.8
Next
From: Adrian Vondendriesch
Date:
Subject: Re: BUG #8128: pg_dump (>= 9.1) failed while dumping a scheme named "old" from PostgreSQL 8.4