Re: [HACKERS] Re: Logical slots not mentioned in CREATE_REPLICATION_SLOT for replication protocol docs

2014-05-31 Thread Andres Freund
On 2014-05-30 08:12:35 +0900, Michael Paquier wrote:
 On Fri, May 30, 2014 at 5:31 AM, Robert Haas robertmh...@gmail.com wrote:
  Thanks, this looks good.  But shouldn't the bit about output plugin
  options mention say something like:
 
  ( option_name option_argument [, ...] )
 
  ...instead of just:
 
  ( option [, ...] )
  ?
 Yes, true. Here is an updated patch.

I've pushed the patch with some additional changes. Hope they make sense
to you.

I wonder whether START_REPLICATION ... LOGICAL should be folded into
... PHYSICAL since they have most things in common. But it'd be a
awfully complicated description.

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


Re: [HACKERS] Re: Logical slots not mentioned in CREATE_REPLICATION_SLOT for replication protocol docs

2014-05-31 Thread Michael Paquier
On Sat, May 31, 2014 at 11:02 PM, Andres Freund and...@2ndquadrant.com wrote:
 On 2014-05-30 08:12:35 +0900, Michael Paquier wrote:
 On Fri, May 30, 2014 at 5:31 AM, Robert Haas robertmh...@gmail.com wrote:
  Thanks, this looks good.  But shouldn't the bit about output plugin
  options mention say something like:
 
  ( option_name option_argument [, ...] )
 
  ...instead of just:
 
  ( option [, ...] )
  ?
 Yes, true. Here is an updated patch.

 I've pushed the patch with some additional changes. Hope they make sense
 to you.
Thanks, those changes look good. Limiting the uses of literal and
noticing that plugin options can have empty values are good catches
that I didn't get in my patch.

 I wonder whether START_REPLICATION ... LOGICAL should be folded into
 ... PHYSICAL since they have most things in common. But it'd be a
 awfully complicated description.
Yeah let's keep them separated, grouping them may be painful. Btw, I
think that we should explicitly list the types of messages that a
logical receiver can receive and use, aka:
- 'w' for stream data
- 'k' for keepalive messages
- 'r' for feedback
The logical messages have the same format as in the physical
replication case, the only difference being that the message 'h'
cannot be used. Thoughts?
Regards,
-- 
Michael


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


Re: [HACKERS] Re: Logical slots not mentioned in CREATE_REPLICATION_SLOT for replication protocol docs

2014-05-29 Thread Robert Haas
On Thu, May 22, 2014 at 12:18 AM, Michael Paquier
michael.paqu...@gmail.com wrote:
 On Thu, May 22, 2014 at 12:44 PM, Michael Paquier
 michael.paqu...@gmail.com wrote:
 Hi all,

 As written in subject, replication protocol documentation lacks
 details about logical slots in CREATE_REPLICATION_SLOT command:
 http://www.postgresql.org/docs/devel/static/protocol-replication.html
 Attached is a patch correcting that.
 An additional thing I noticed: START_REPLICATION does not mention that
 it is possible to specify options for the output plugin. All the fixes
 are included in the patch attached.

Thanks, this looks good.  But shouldn't the bit about output plugin
options mention say something like:

( option_name option_argument [, ...] )

...instead of just:

( option [, ...] )

?

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] Re: Logical slots not mentioned in CREATE_REPLICATION_SLOT for replication protocol docs

2014-05-29 Thread Michael Paquier
On Fri, May 30, 2014 at 5:31 AM, Robert Haas robertmh...@gmail.com wrote:
 Thanks, this looks good.  But shouldn't the bit about output plugin
 options mention say something like:

 ( option_name option_argument [, ...] )

 ...instead of just:

 ( option [, ...] )
 ?
Yes, true. Here is an updated patch.
-- 
Michael
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 3a2421b..43861d0 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -1428,10 +1428,10 @@ The commands accepted in walsender mode are:
   /varlistentry
 
   varlistentry
-termliteralCREATE_REPLICATION_SLOT/literal replaceable class=parameterslotname/ literalPHYSICAL/literalindextermprimaryCREATE_REPLICATION_SLOT/primary/indexterm/term
+termliteralCREATE_REPLICATION_SLOT/literal replaceable class=parameterslotname/ { literalPHYSICAL/ | literalLOGICAL/ replaceable class=parameteroutput_plugin/ } indextermprimaryCREATE_REPLICATION_SLOT/primary/indexterm/term
 listitem
  para
-  Create a physical replication
+  Create a physical or logical replication
   slot. See xref linkend=streaming-replication-slots for more about
   replication slots.
  /para
@@ -1445,6 +1445,16 @@ The commands accepted in walsender mode are:
  /para
/listitem
   /varlistentry
+
+  varlistentry
+   termreplaceable class=parameteroutput_plugin//term
+   listitem
+ para
+  The name of the output plugin used for logical decoding
+  (see xref linkend=logicaldecoding-output-plugin).
+ /para
+   /listitem
+  /varlistentry
  /variablelist
 /listitem
   /varlistentry
@@ -1778,7 +1788,7 @@ The commands accepted in walsender mode are:
 /listitem
   /varlistentry
   varlistentry
-termliteralSTART_REPLICATION/literal literalSLOT/literal replaceable class=parameterslotname/ literalLOGICAL/literal replaceable class=parameterXXX/XXX//term
+termliteralSTART_REPLICATION/literal literalSLOT/literal replaceable class=parameterslotname/ literalLOGICAL/literal replaceable class=parameterXXX/XXX/ [ ( replaceableoption_name/replaceable replaceablevalue/replaceable [, ... ] ) ]/term
 listitem
  para
   Instructs server to start streaming WAL for logical replication, starting
@@ -1811,6 +1821,22 @@ The commands accepted in walsender mode are:
 /para
/listitem
   /varlistentry
+  varlistentry
+   termreplaceable class=parameteroption_name//term
+   listitem
+para
+ Custom option name for logical decoding plugin.
+/para
+   /listitem
+  /varlistentry
+  varlistentry
+   termreplaceable class=parametervalue//term
+   listitem
+para
+ Value associated with given option for logical decoding plugin.
+/para
+   /listitem
+  /varlistentry
  /variablelist
 /listitem
   /varlistentry

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


[HACKERS] Re: Logical slots not mentioned in CREATE_REPLICATION_SLOT for replication protocol docs

2014-05-21 Thread Michael Paquier
On Thu, May 22, 2014 at 12:44 PM, Michael Paquier
michael.paqu...@gmail.com wrote:
 Hi all,

 As written in subject, replication protocol documentation lacks
 details about logical slots in CREATE_REPLICATION_SLOT command:
 http://www.postgresql.org/docs/devel/static/protocol-replication.html
 Attached is a patch correcting that.
An additional thing I noticed: START_REPLICATION does not mention that
it is possible to specify options for the output plugin. All the fixes
are included in the patch attached.
Regards,
-- 
Michael
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 3a2421b..42ed113 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -1428,10 +1428,10 @@ The commands accepted in walsender mode are:
   /varlistentry
 
   varlistentry
-termliteralCREATE_REPLICATION_SLOT/literal replaceable 
class=parameterslotname/ 
literalPHYSICAL/literalindextermprimaryCREATE_REPLICATION_SLOT/primary/indexterm/term
+termliteralCREATE_REPLICATION_SLOT/literal replaceable 
class=parameterslotname/ { literalPHYSICAL/ | literalLOGICAL/ 
replaceable class=parameteroutput_plugin/ } 
indextermprimaryCREATE_REPLICATION_SLOT/primary/indexterm/term
 listitem
  para
-  Create a physical replication
+  Create a physical or logical replication
   slot. See xref linkend=streaming-replication-slots for more about
   replication slots.
  /para
@@ -1445,6 +1445,16 @@ The commands accepted in walsender mode are:
  /para
/listitem
   /varlistentry
+
+  varlistentry
+   termreplaceable class=parameteroutput_plugin//term
+   listitem
+ para
+  The name of the output plugin used for logical decoding
+  (see xref linkend=logicaldecoding-output-plugin).
+ /para
+   /listitem
+  /varlistentry
  /variablelist
 /listitem
   /varlistentry
@@ -1778,7 +1788,7 @@ The commands accepted in walsender mode are:
 /listitem
   /varlistentry
   varlistentry
-termliteralSTART_REPLICATION/literal literalSLOT/literal 
replaceable class=parameterslotname/ literalLOGICAL/literal 
replaceable class=parameterXXX/XXX//term
+termliteralSTART_REPLICATION/literal literalSLOT/literal 
replaceable class=parameterslotname/ literalLOGICAL/literal 
replaceable class=parameterXXX/XXX/ [ ( replaceableoption/replaceable 
[, ... ] ) ]/term
 listitem
  para
   Instructs server to start streaming WAL for logical replication, starting
@@ -1811,6 +1821,14 @@ The commands accepted in walsender mode are:
 /para
/listitem
   /varlistentry
+  varlistentry
+   termreplaceable class=parameteroption//term
+   listitem
+para
+ Custom option for logical decoding plugin.
+/para
+   /listitem
+  /varlistentry
  /variablelist
 /listitem
   /varlistentry

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