Re: [HACKERS] ALTER SUBSCRIPTION ..SET PUBLICATION refreshis not throwing error. - Mailing list pgsql-hackers

From Euler Taveira
Subject Re: [HACKERS] ALTER SUBSCRIPTION ..SET PUBLICATION refreshis not throwing error.
Date
Msg-id CAHE3wghqkBw-3w_qSDzEMX+CLP0VFON13NsqeWeMYvh3bDvcRg@mail.gmail.com
Whole thread Raw
In response to [HACKERS] ALTER SUBSCRIPTION ..SET PUBLICATION refresh is notthrowing error.  (tushar <tushar.ahuja@enterprisedb.com>)
Responses Re: [HACKERS] ALTER SUBSCRIPTION ..SET PUBLICATION refreshis not throwing error.  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
List pgsql-hackers
2017-05-23 6:00 GMT-03:00 tushar <tushar.ahuja@enterprisedb.com>:

s=# alter subscription s1 set publication  skip refresh ;
NOTICE:  removed subscription for table public.t
NOTICE:  removed subscription for table public.t1
ALTER SUBSCRIPTION
s=#

That's a design flaw. Since SKIP is not a reserved word, parser consider it as a publication name. Instead of causing an error, it executes another command (REFRESH) that is the opposite someone expects. Also, as "skip" is not a publication name, it removes all tables in the subscription.

ALTER SUBSCRIPTION name SET PUBLICATION publication_name_list SKIP REFRESH
ALTER SUBSCRIPTION name SET PUBLICATION publication_name_list REFRESH opt_definition

I think the first command was a bad design. Why don't we transform SKIP REFRESH into a REFRESH option?

ALTER SUBSCRIPTION sub1 SET PUBLICATION pub1 REFRESH WITH (skip = true);

skip (boolean): specifies that the command will not try to refresh table information. The default is false.


--
   Euler Taveira                                   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento

pgsql-hackers by date:

Previous
From: Paul Ramsey
Date:
Subject: Re: [HACKERS] generate_series regression 9.6->10
Next
From: Petr Jelinek
Date:
Subject: Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table