On 2013-07-05 11:33:20 -0400, Steve Singer wrote:
> On 06/14/2013 06:51 PM, Andres Freund wrote:
> >The git tree is at:
> >git://git.postgresql.org/git/users/andresfreund/postgres.git branch 
> >xlog-decoding-rebasing-cf4
> >http://git.postgresql.org/gitweb/?p=users/andresfreund/postgres.git;a=shortlog;h=refs/heads/xlog-decoding-rebasing-cf4
> 
> 
> We discussed issues related to passing options to the plugins a number of
> months ago ( 
> http://www.postgresql.org/message-id/20130129015732.ga24...@awork2.anarazel.de)
> 
> I'm still having issues with the syntax you describe there.
> 
> 
> START_LOGICAL_REPLICATION "1" 0/0 ("foo","bar")
>  unexpected termination of replication stream: ERROR:  foo requires a
> parameter

I'd guess that's coming from your output plugin? You're using
defGetString() on DefElem without a value?

> START_LOGICAL_REPLICATION "1" 0/0 ("foo" "bar")

Yes, the option *names* are identifiers, together with plugin & slot
names. The passed values need to be SCONSTs atm
(src/backend/replication/repl_gram.y):

plugin_opt_elem:
                        IDENT plugin_opt_arg
                                {
                                        $$ = makeDefElem($1, $2);
                                }
                ;

plugin_opt_arg:
                        SCONST                                                  
{ $$ = (Node *) makeString($1); }
                        | /* EMPTY */                                   { $$ = 
NULL; }
                ;

So, it would have to be:
START_LOGICAL_REPLICATION "1" 0/0 ("foo" 'bar blub frob', "sup" 'star', "noarg")

Now that's not completely obvious, I admit :/. Better suggestions?

Greetings,

Andres Freund

-- 
 Andres Freund                     http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to