Hi,
Not per Coverity!
About comments:
1. For drop, no "copy data"
2. Only refresh the added/*dropped* list of publications. (my emphasis)
The documentation says:
"
DROP PUBLICATION publication_name
Changes the list of subscribed publications. SET
replaces the entire list of publications with a new list, ADD
adds additional publications, DROP
removes publications from the list of publications. See CREATE SUBSCRIPTION for more information. By default, this command will also act like REFRESH PUBLICATION
, except that in case of ADD
or DROP
, only the added or dropped publications are refreshed.
set_publication_option
specifies additional options for this operation. The supported options are:
refresh
(boolean
)When false, the command will not try to refresh table information. REFRESH PUBLICATION
should then be executed separately. The default is true
.
Additionally, refresh options as described under REFRESH PUBLICATION
may be specified."
- So, is allowed DROP PUBLICATION with (refresh = true)
I try some tests with subscription.sql:
CREATE SUBSCRIPTION regress_testsub3 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, streaming = true);
+CREATE SUBSCRIPTION regress_testsub3 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, streaming = true);
+WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
ALTER SUBSCRIPTION regress_testsub3 ENABLE;
ALTER SUBSCRIPTION regress_testsub3 REFRESH PUBLICATION;
+ALTER SUBSCRIPTION regress_testsub3 ENABLE;
+ALTER SUBSCRIPTION regress_testsub3 REFRESH PUBLICATION;
+ERROR: could not connect to the publisher: connection to server at "localhost" (::1), port 58080 failed: FATAL: database "regress_doesnotexist" does not exist
-- ok - delete active publication with refresh = true
ALTER SUBSCRIPTION regress_testsub3 DROP PUBLICATION testpub WITH (refresh = true);
+-- ok - delete active publication with refresh = true
+ALTER SUBSCRIPTION regress_testsub3 DROP PUBLICATION testpub WITH (refresh = true);
+ERROR: subscription must contain at least one publication
I think this bug is live, for lack of tests with DROP PUBLICATION WITH (refresh = true).