Обсуждение: [patch] Bug in pg_dump/pg_restore using --no-publication

Поиск
Список
Период
Сортировка

[patch] Bug in pg_dump/pg_restore using --no-publication

От
Gilles Darold
Дата:
Hi,


Attached is a patch that fixes a bug in pg_dump since 10.0 and
reproducible in master. When using option --no-publication : ALTER
PUBLICATION orders are still present in the dump.


Steps to reproduce:

postgres=# CREATE DATABASE test;
CREATE DATABASE
postgres=# \c test
You are now connected to database "test" as user "postgres".
test=# create table t1 (id integer);
CREATE TABLE
test=# CREATE PUBLICATION p1 FOR TABLE t1;
CREATE PUBLICATION
test=# CREATE PUBLICATION p_all FOR ALL TABLES;
CREATE PUBLICATION
test=# CREATE PUBLICATION p_insert_only FOR TABLE t1 WITH (publish =
'insert');
CREATE PUBLICATION
test=# \q

$ pg_dump -p 5400 --no-publication test | grep PUBLICATION
-- Name: p1 t1; Type: PUBLICATION TABLE; Schema: public; Owner:
ALTER PUBLICATION p1 ADD TABLE ONLY public.t1;
-- Name: p_insert_only t1; Type: PUBLICATION TABLE; Schema: public; Owner:
ALTER PUBLICATION p_insert_only ADD TABLE ONLY public.t1;


pg_restore suffers the same problem:

pg_restore --no-publication test.dump | grep PUBLICATION
-- Name: p1 t1; Type: PUBLICATION TABLE; Schema: public; Owner:
ALTER PUBLICATION p1 ADD TABLE ONLY public.t1;
-- Name: p_insert_only t1; Type: PUBLICATION TABLE; Schema: public; Owner:
ALTER PUBLICATION p_insert_only ADD TABLE ONLY public.t1;

pg_restore --no-publication test.dump -l test.dump| grep PUBLICATION
2230; 6106 16389 PUBLICATION TABLE public p1 t1
2231; 6106 16392 PUBLICATION TABLE public p_insert_only t1


Should I add it to current commitfest ?


-- 
Gilles Darold
Consultant PostgreSQL
http://dalibo.com - http://dalibo.org


Вложения

Re: [patch] Bug in pg_dump/pg_restore using --no-publication

От
Michael Paquier
Дата:
On Fri, Sep 21, 2018 at 05:44:02PM +0200, Gilles Darold wrote:
> Attached is a patch that fixes a bug in pg_dump since 10.0 and
> reproducible in master. When using option --no-publication : ALTER
> PUBLICATION orders are still present in the dump.

Thanks for the report, the patch, and the test case, Gilles!

> pg_restore --no-publication test.dump -l test.dump| grep PUBLICATION
> 2230; 6106 16389 PUBLICATION TABLE public p1 t1
> 2231; 6106 16392 PUBLICATION TABLE public p_insert_only t1

This command does not actually work ;)

> Should I add it to current commitfest ?

No need to.  I have committed your patch down to v10 after making sure
that we are not missing any other spots, and testing each branch
manually.
--
Michael

Вложения