BUG #4957: search_path and pg_dump -T switch - Mailing list pgsql-bugs

From Maxim.Boguk
Subject BUG #4957: search_path and pg_dump -T switch
Date
Msg-id 200907311031.n6VAVqQw012664@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #4957: search_path and pg_dump -T switch  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      4957
Logged by:          Maxim.Boguk
Email address:      maxim.boguk@gmail.com
PostgreSQL version: 8.3
Operating system:   Any
Description:        search_path and pg_dump -T switch
Details:

If table lies outside of database search path
pg_dump -T table will dump this table contents/structure.

(i found that bug when i creating custom backup plan for complicated db).

Test case:

empty DB:

pgsql@[local] postgres=#CREATE schema test;
CREATE SCHEMA
pgsql@[local] postgres=#CREATE TABLE test.test1 (id serial);
CREATE TABLE
pgsql@[local] postgres=#CREATE TABLE test2 (id serial);
CREATE TABLE
pgsql@[local] postgres=#INSERT into test.test1 values (1);
INSERT 0 1
pgsql@[local] postgres=#INSERT into test2 values (1);
INSERT 0 1

Now we have table test1 with one row outside of search_path and table test2
with one row inside of search path.

Now
pg_dump -F p -D -T test1 -a test_db | grep test1
will out:
INSERT INTO test1 (id) VALUES (1);

And
pg_dump -F p -D -T test2 -a test_db | grep test2
will out empty.

First result is wrong.

pgsql-bugs by date:

Previous
From: "Niranjan Pandit"
Date:
Subject: BUG #4956: Array Construct array() returning blank result
Next
From: Tom Lane
Date:
Subject: Re: BUG #4957: search_path and pg_dump -T switch