CVS User Account cvsuser
Tue Sep 7 18:11:16 PDT 2004
Log Message:
-----------
Added option "EXECUTE ONLY ON = <nodeid>" to the DDL script
execution.

Jan

Modified Files:
--------------
    slony1-engine/doc/howto:
        slonik_commands.html (r1.5 -> r1.6)
    slony1-engine/src/backend:
        slony1_funcs.sql (r1.23 -> r1.24)
    slony1-engine/src/slon:
        remote_worker.c (r1.59 -> r1.60)
    slony1-engine/src/slonik:
        parser.c (r1.17 -> r1.18)
        parser.y (r1.16 -> r1.17)
        scan.c (r1.18 -> r1.19)
        scan.l (r1.18 -> r1.19)
        slonik.c (r1.29 -> r1.30)
        slonik.h (r1.17 -> r1.18)

-------------- next part --------------
Index: slonik_commands.html
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/howto/slonik_commands.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -Ldoc/howto/slonik_commands.html -Ldoc/howto/slonik_commands.html -u -w -r1.5 -r1.6
--- doc/howto/slonik_commands.html
+++ doc/howto/slonik_commands.html
@@ -1473,6 +1473,17 @@
 		The default value is 1.
 	</p></td>
 </tr>
+<tr>
+	<td align="left" valign="top" nowrap><b>EXECUTE ONLY ON = &lt;ival&gt;</b></td>
+	<td align="left" valign="top"><p>
+		<b>(Optional)</b>
+		The ID of the only node to actually execute the script.
+		This option causes the script to be propagated by all nodes
+		but executed only by one.
+		The default is to execute the script on all nodes that are
+		subscribed to the set.
+	</p></td>
+</tr>
 </table>
 <h3>Example:</h3>
 <p>
Index: slony1_funcs.sql
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/backend/slony1_funcs.sql,v
retrieving revision 1.23
retrieving revision 1.24
diff -Lsrc/backend/slony1_funcs.sql -Lsrc/backend/slony1_funcs.sql -u -w -r1.23 -r1.24
--- src/backend/slony1_funcs.sql
+++ src/backend/slony1_funcs.sql
@@ -2603,16 +2603,17 @@
 replicated table trig_tabid IS disabled.';
 
 -- ----------------------------------------------------------------------
--- FUNCTION ddlScript (set_id, script)
+-- FUNCTION ddlScript (set_id, script, only_on_node)
 --
 --	Generate the DDL_SCRIPT event
 -- ----------------------------------------------------------------------
-create or replace function @NAMESPACE at .ddlScript (int4, text)
+create or replace function @NAMESPACE at .ddlScript (int4, text, int4)
 returns bigint
 as '
 declare
 	p_set_id			alias for $1;
 	p_script			alias for $2;
+	p_only_on_node		alias for $3;
 	v_set_origin		int4;
 begin
 	-- ----
@@ -2639,29 +2640,30 @@
 	-- Create a SYNC event, run the script and generate the DDL_SCRIPT event
 	-- ----
 	perform @NAMESPACE at .createEvent(''_ at CLUSTERNAME@'', ''SYNC'', NULL);
-	perform @NAMESPACE at .ddlScript_int(p_set_id, p_script);
+	perform @NAMESPACE at .ddlScript_int(p_set_id, p_script, p_only_on_node);
 	return  @NAMESPACE at .createEvent(''_ at CLUSTERNAME@'', ''DDL_SCRIPT'', 
-			p_set_id, p_script);
+			p_set_id, p_script, p_only_on_node);
 end;
 ' language plpgsql;
-comment on function @NAMESPACE at .ddlScript(int4, text) is
-'ddlScript(set_id, script)
+comment on function @NAMESPACE at .ddlScript(int4, text, int4) is
+'ddlScript(set_id, script, only_on_node)
 
 Generates a SYNC event, runs the script on the origin, and then
 generates a DDL_SCRIPT event to request it to be run on replicated
 slaves.';
 
 -- ----------------------------------------------------------------------
--- FUNCTION ddlScript_int (set_id, script)
+-- FUNCTION ddlScript_int (set_id, script, only_on_node)
 --
 --	Process the DDL_SCRIPT event
 -- ----------------------------------------------------------------------
-create or replace function @NAMESPACE at .ddlScript_int (int4, text)
+create or replace function @NAMESPACE at .ddlScript_int (int4, text, int4)
 returns int4
 as '
 declare
 	p_set_id			alias for $1;
 	p_script			alias for $2;
+	p_only_on_node		alias for $3;
 	v_set_origin		int4;
 	v_no_id				int4;
 	v_row				record;
@@ -2692,6 +2694,14 @@
 	end if;
 
 	-- ----
+	-- If execution on only one node is requested, check that
+	-- we are that node.
+	-- ----
+	if p_only_on_node > 0 and p_only_on_node <> v_no_id then
+		return 0;
+	end if;
+
+	-- ----
 	-- Restore all original triggers and rules
 	-- ----
 	for v_row in select * from @NAMESPACE at .sl_table
@@ -2717,8 +2727,8 @@
 	return p_set_id;
 end;
 ' language plpgsql;
-comment on function @NAMESPACE at .ddlScript_int(int4, text) is
-'ddlScript_int(set_id, script)
+comment on function @NAMESPACE at .ddlScript_int(int4, text, int4) is
+'ddlScript_int(set_id, script, only_on_node)
 
 Processes the DDL_SCRIPT event.  On slave nodes, this restores
 original triggers/rules, runs the script, and then puts tables back
Index: remote_worker.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slon/remote_worker.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -Lsrc/slon/remote_worker.c -Lsrc/slon/remote_worker.c -u -w -r1.59 -r1.60
--- src/slon/remote_worker.c
+++ src/slon/remote_worker.c
@@ -913,11 +913,12 @@
 			{
 				int		ddl_setid = (int) strtol(event->ev_data1, NULL, 10);
 				char   *ddl_script = event->ev_data2;
+				int		ddl_only_on_node = (int) strtol(event->ev_data3, NULL, 10);
 
 				slon_appendquery(&query1,
-						"select %s.ddlScript_int(%d, '%q'); ",
+						"select %s.ddlScript_int(%d, '%q', %d); ",
 						rtcfg_namespace,
-						ddl_setid, ddl_script);
+						ddl_setid, ddl_script, ddl_only_on_node);
 			}
 			else
 			{
Index: scan.l
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/scan.l,v
retrieving revision 1.18
retrieving revision 1.19
diff -Lsrc/slonik/scan.l -Lsrc/slonik/scan.l -u -w -r1.18 -r1.19
--- src/slonik/scan.l
+++ src/slonik/scan.l
@@ -76,6 +76,7 @@
 off				{ return K_OFF;					}
 old				{ return K_OLD;					}
 on				{ return K_ON;					}
+only			{ return K_ONLY;				}
 origin			{ return K_ORIGIN;				}
 path			{ return K_PATH;				}
 provider		{ return K_PROVIDER;			}
Index: slonik.h
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/slonik.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -Lsrc/slonik/slonik.h -Lsrc/slonik/slonik.h -u -w -r1.17 -r1.18
--- src/slonik/slonik.h
+++ src/slonik/slonik.h
@@ -317,6 +317,7 @@
 	int					ddl_setid;
 	char			   *ddl_fname;
 	int					ev_origin;
+	int					only_on_node;
 	int					ddl_fd;
 };
 
Index: scan.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/scan.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -Lsrc/slonik/scan.c -Lsrc/slonik/scan.c -u -w -r1.18 -r1.19
--- src/slonik/scan.c
+++ src/slonik/scan.c
@@ -291,59 +291,60 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 76
-#define YY_END_OF_BUFFER 77
-static yyconst short int yy_acclist[420] =
+#define YY_NUM_RULES 77
+#define YY_END_OF_BUFFER 78
+static yyconst short int yy_acclist[423] =
     {   0,
-       77,   75,   76,   67,   75,   76,   67,   76,   74,   75,
-       76,   68,   75,   76,   65,   75,   76,   66,   75,   76,
-       66,   75,   76,   66,   75,   76,   66,   75,   76,   66,
-       75,   76,   66,   75,   76,   66,   75,   76,   66,   75,
-       76,   66,   75,   76,   66,   75,   76,   66,   75,   76,
-       66,   75,   76,   66,   75,   76,   66,   75,   76,   66,
-       75,   76,   66,   75,   76,   66,   75,   76,   66,   75,
-       76,   66,   75,   76,   66,   75,   76,   66,   75,   76,
-       73,   76,   72,   76,   70,   76,   67,   74,   65,   66,
-       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
-
-       66,   66,   66,   66,   66,   26,   66,   66,   66,   66,
-       66,   66,   66,   66,   66,   35,   66,   66,   66,   39,
-       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
-       66,   66,   66,   66,   66,   66,   66,   73,   71,   69,
-        1,   66,   66,    3,   66,   66,   66,   66,   66,   66,
-       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
-       21,   66,   66,   66,   66,   28,   66,   66,   66,   66,
-       66,   66,   34,   66,   66,   37,   66,   38,   66,   66,
-       66,   66,   66,   66,   66,   66,   66,   66,   50,   66,
-       66,   66,   66,   66,   66,   66,   66,   58,   66,   66,
-
-       66,   66,   66,   66,   63,   66,   66,   66,   66,   66,
-       66,   66,   66,   66,   12,   66,   13,   66,   66,   66,
-       66,   17,   66,   66,   66,   66,   66,   23,   66,   66,
-       27,   66,   66,   30,   66,   66,   32,   66,   33,   66,
-       36,   66,   66,   41,   66,   66,   66,   66,   66,   66,
-       66,   66,   66,   66,   66,   66,   66,   66,   66,   57,
-       66,   66,   66,   66,   66,   64,   66,    2,   66,   66,
-       66,   66,   66,   66,   66,   66,   66,   14,   66,   15,
-       66,   66,   66,   19,   66,   66,   66,   24,   66,   66,
-       66,   31,   66,   66,   66,   66,   66,   66,   66,   66,
-
-       66,   66,   51,   66,   66,   66,   54,   66,   66,   66,
-       66,   66,   66,   66,    4,   66,    5,   66,   66,   66,
-       66,   66,   66,   11,   66,   66,   66,   66,   66,   66,
-       29,   66,   40,   66,   66,   66,   66,   66,   46,   66,
-       66,   48,   66,   49,   66,   66,   66,   66,   66,   66,
-       60,   66,   66,   62,   66,    6,   66,    7,   66,   66,
-       66,   66,   16,   66,   66,   66,   22,   66,   66,   66,
-       66,   66,   45,   66,   66,   66,   53,   66,   55,   66,
-       56,   66,   66,   66,   66,    9,   66,   66,   18,   66,
-       20,   66,   66,   42,   66,   66,   44,   66,   47,   66,
-
-       66,   66,   66,    8,   66,   10,   66,   25,   66,   43,
-       66,   52,   66,   59,   66,   66,   66,   61,   66
+       78,   76,   77,   68,   76,   77,   68,   77,   75,   76,
+       77,   69,   76,   77,   66,   76,   77,   67,   76,   77,
+       67,   76,   77,   67,   76,   77,   67,   76,   77,   67,
+       76,   77,   67,   76,   77,   67,   76,   77,   67,   76,
+       77,   67,   76,   77,   67,   76,   77,   67,   76,   77,
+       67,   76,   77,   67,   76,   77,   67,   76,   77,   67,
+       76,   77,   67,   76,   77,   67,   76,   77,   67,   76,
+       77,   67,   76,   77,   67,   76,   77,   67,   76,   77,
+       74,   77,   73,   77,   71,   77,   68,   75,   66,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+
+       67,   67,   67,   67,   67,   26,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   35,   67,   67,   67,   39,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   74,   72,   70,
+        1,   67,   67,    3,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       21,   67,   67,   67,   67,   28,   67,   67,   67,   67,
+       67,   67,   34,   67,   67,   37,   67,   38,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   51,
+       67,   67,   67,   67,   67,   67,   67,   67,   59,   67,
+
+       67,   67,   67,   67,   67,   64,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   12,   67,   13,   67,   67,
+       67,   67,   17,   67,   67,   67,   67,   67,   23,   67,
+       67,   27,   67,   67,   30,   67,   67,   32,   67,   33,
+       67,   36,   67,   40,   67,   67,   42,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   58,   67,   67,   67,   67,   67,   65,   67,
+        2,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       14,   67,   15,   67,   67,   67,   19,   67,   67,   67,
+       24,   67,   67,   67,   31,   67,   67,   67,   67,   67,
+
+       67,   67,   67,   67,   67,   52,   67,   67,   67,   55,
+       67,   67,   67,   67,   67,   67,   67,    4,   67,    5,
+       67,   67,   67,   67,   67,   67,   11,   67,   67,   67,
+       67,   67,   67,   29,   67,   41,   67,   67,   67,   67,
+       67,   47,   67,   67,   49,   67,   50,   67,   67,   67,
+       67,   67,   67,   61,   67,   67,   63,   67,    6,   67,
+        7,   67,   67,   67,   67,   16,   67,   67,   67,   22,
+       67,   67,   67,   67,   67,   46,   67,   67,   67,   54,
+       67,   56,   67,   57,   67,   67,   67,   67,    9,   67,
+       67,   18,   67,   20,   67,   67,   43,   67,   67,   45,
+
+       67,   48,   67,   67,   67,   67,    8,   67,   10,   67,
+       25,   67,   44,   67,   53,   67,   60,   67,   67,   67,
+       62,   67
     } ;
 
-static yyconst short int yy_accept[307] =
+static yyconst short int yy_accept[309] =
     {   0,
         1,    1,    1,    1,    1,    2,    4,    7,    9,   12,
        15,   18,   21,   24,   27,   30,   33,   36,   39,   42,
@@ -358,27 +359,27 @@
 
       157,  158,  159,  160,  161,  163,  164,  165,  166,  168,
       169,  170,  171,  172,  173,  175,  176,  178,  180,  181,
-      182,  183,  184,  185,  186,  187,  188,  189,  191,  192,
-      193,  194,  195,  196,  197,  198,  200,  201,  202,  203,
-      204,  205,  207,  208,  209,  210,  211,  212,  213,  214,
-      215,  217,  219,  220,  221,  222,  224,  225,  226,  227,
-      228,  230,  231,  233,  234,  236,  237,  239,  241,  243,
-      244,  246,  247,  248,  249,  250,  251,  252,  253,  254,
-      255,  256,  257,  258,  259,  260,  262,  263,  264,  265,
-      266,  268,  270,  271,  272,  273,  274,  275,  276,  277,
-
-      278,  280,  282,  283,  284,  286,  287,  288,  290,  291,
-      292,  294,  295,  296,  297,  298,  299,  300,  301,  302,
-      303,  305,  306,  307,  309,  310,  311,  312,  313,  314,
-      315,  317,  319,  320,  321,  322,  323,  324,  326,  327,
-      328,  329,  330,  331,  333,  335,  336,  337,  338,  339,
-      341,  342,  344,  346,  347,  348,  349,  350,  351,  353,
-      354,  356,  358,  360,  361,  362,  363,  365,  366,  367,
-      369,  370,  371,  372,  373,  375,  376,  377,  379,  381,
-      383,  384,  385,  386,  388,  389,  391,  393,  394,  396,
-      397,  399,  401,  402,  403,  404,  406,  408,  410,  412,
+      182,  183,  184,  185,  186,  187,  188,  189,  190,  192,
+      193,  194,  195,  196,  197,  198,  199,  201,  202,  203,
+      204,  205,  206,  208,  209,  210,  211,  212,  213,  214,
+      215,  216,  218,  220,  221,  222,  223,  225,  226,  227,
+      228,  229,  231,  232,  234,  235,  237,  238,  240,  242,
+      244,  246,  247,  249,  250,  251,  252,  253,  254,  255,
+      256,  257,  258,  259,  260,  261,  262,  263,  265,  266,
+      267,  268,  269,  271,  273,  274,  275,  276,  277,  278,
+
+      279,  280,  281,  283,  285,  286,  287,  289,  290,  291,
+      293,  294,  295,  297,  298,  299,  300,  301,  302,  303,
+      304,  305,  306,  308,  309,  310,  312,  313,  314,  315,
+      316,  317,  318,  320,  322,  323,  324,  325,  326,  327,
+      329,  330,  331,  332,  333,  334,  336,  338,  339,  340,
+      341,  342,  344,  345,  347,  349,  350,  351,  352,  353,
+      354,  356,  357,  359,  361,  363,  364,  365,  366,  368,
+      369,  370,  372,  373,  374,  375,  376,  378,  379,  380,
+      382,  384,  386,  387,  388,  389,  391,  392,  394,  396,
+      397,  399,  400,  402,  404,  405,  406,  407,  409,  411,
 
-      414,  416,  417,  418,  420,  420
+      413,  415,  417,  419,  420,  421,  423,  423
     } ;
 
 static yyconst int yy_ec[256] =
@@ -421,83 +422,85 @@
         4,    4,    4,    4
     } ;
 
-static yyconst short int yy_base[311] =
+static yyconst short int yy_base[313] =
     {   0,
-        0,    0,   28,   29,  330,  331,   37,   40,    0,  331,
-      321,    0,   31,  317,   26,  300,   33,   37,   35,  311,
-       35,   47,   54,   47,   46,  295,  309,   62,   61,   56,
-      312,  307,    0,  314,    0,   80,    0,  312,    0,   71,
-      298,  305,   57,   67,  302,  292,  297,  287,  298,   36,
-       75,  291,  284,   74,    0,  291,  275,  280,  294,  279,
-      274,  282,  271,  288,  285,  286,    0,  280,  269,  273,
-      285,   73,  268,   73,  270,   91,  281,  270,   79,   86,
-      277,  271,  261,    0,  331,  331,    0,  269,    0,  267,
-      271,  257,  262,   92,  272,  257,  257,  256,  256,  265,
-
-      248,  255,  247,  259,  241,  251,  258,  241,    0,  240,
-      248,  250,  251,  250,    0,  249,    0,    0,  246,  244,
-      230,  239,  244,  229,  238,  226,   87,    0,  228,  226,
-      240,  231,  236,  233,  234,    0,  225,  223,  216,  234,
-      215,    0,  220,  212,  218,  211,  224,  219,   92,  208,
-        0,    0,  209,  206,  204,    0,  209,  217,  208,  219,
-      195,  199,    0,  212,    0,  211,    0,    0,    0,  206,
-        0,  205,  204,  203,  210,  195,  204,  207,  202,  201,
-      202,  199,  198,  188,  194,    0,  182,  196,  196,  178,
-        0,    0,  181,  176,  189,  180,  175,  178,  185,  184,
-
-        0,    0,  169,  166,    0,  185,  168,    0,  175,  170,
-        0,  169,  177,  174,  158,  161,  158,  163,  164,  157,
-        0,  156,  154,    0,  151,  165,  150,  158,  149,  161,
-        0,    0,  148,  145,  151,  156,  142,    0,  155,  154,
-      146,  153,  142,    0,    0,  150,  145,  148,  133,    0,
-      148,    0,    0,  141,  131,  129,  130,  145,    0,  142,
-        0,    0,    0,  139,  129,  125,    0,  124,  135,    0,
-      126,  121,  132,  119,    0,  130,  132,    0,    0,    0,
-      122,  115,  127,    0,  106,    0,    0,  111,    0,  121,
-        0,    0,  112,  105,   98,    0,    0,    0,    0,    0,
+        0,    0,   28,   29,  332,  333,   37,   40,    0,  333,
+      323,    0,   31,  319,   26,  302,   33,   37,   35,  313,
+       35,   47,   54,   47,   46,  297,  311,   62,   61,   56,
+      314,  309,    0,  316,    0,   80,    0,  314,    0,   71,
+      300,  307,   57,   67,  304,  294,  299,  289,  300,   36,
+       75,  293,  286,   74,    0,  293,  277,  282,  296,  281,
+      276,  284,  273,  290,  287,  288,  280,  281,  270,  274,
+      286,   73,  269,   73,  271,   91,  282,  271,   79,   86,
+      278,  272,  262,    0,  333,  333,    0,  270,    0,  268,
+      272,  258,  263,   92,  273,  258,  258,  257,  257,  266,
+
+      249,  256,  248,  260,  242,  252,  259,  242,    0,  241,
+      249,  251,  252,  251,    0,  250,    0,    0,  230,  246,
+      244,  230,  239,  244,  229,  238,  226,   87,    0,  228,
+      226,  240,  231,  236,  233,  234,    0,  225,  223,  216,
+      234,  215,    0,  220,  212,  218,  211,  224,  219,   92,
+      208,    0,    0,  209,  206,  204,    0,  209,  217,  208,
+      219,  195,  199,    0,  212,    0,  211,    0,    0,    0,
+        0,  206,    0,  205,  204,  203,  210,  195,  204,  207,
+      202,  201,  202,  199,  198,  188,  194,    0,  182,  196,
+      196,  178,    0,    0,  181,  176,  189,  180,  175,  178,
+
+      185,  184,    0,    0,  169,  166,    0,  185,  168,    0,
+      175,  170,    0,  169,  177,  174,  158,  161,  158,  163,
+      164,  157,    0,  156,  154,    0,  151,  165,  150,  158,
+      149,  161,    0,    0,  148,  145,  151,  156,  142,    0,
+      155,  154,  146,  153,  142,    0,    0,  150,  145,  148,
+      133,    0,  148,    0,    0,  141,  131,  129,  130,  145,
+        0,  142,    0,    0,    0,  139,  129,  125,    0,  124,
+      135,    0,  126,  121,  132,  119,    0,  130,  132,    0,
+        0,    0,  122,  115,  127,    0,  106,    0,    0,  111,
+        0,  121,    0,    0,  112,  105,   98,    0,    0,    0,
 
-        0,  104,   97,    0,  331,  119,  124,  106,  129,  133
+        0,    0,    0,  104,   97,    0,  333,  119,  124,  106,
+      129,  133
     } ;
 
-static yyconst short int yy_def[311] =
+static yyconst short int yy_def[313] =
     {   0,
-      305,    1,  306,  306,  305,  305,  305,  305,  307,  305,
-      305,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  309,  305,  310,  305,  307,  305,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  309,  305,  305,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
+      307,    1,  308,  308,  307,  307,  307,  307,  309,  307,
+      307,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  311,  307,  312,  307,  309,  307,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  311,  307,  307,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
 
-      308,  308,  308,  308,    0,  305,  305,  305,  305,  305
+      310,  310,  310,  310,  310,  310,    0,  307,  307,  307,
+      307,  307
     } ;
 
-static yyconst short int yy_nxt[366] =
+static yyconst short int yy_nxt[368] =
     {   0,
         6,    7,    8,    7,    9,    6,   10,   11,    6,   12,
        13,   14,   15,   16,   17,   18,   12,   12,   19,   20,
@@ -507,41 +510,41 @@
       100,   41,   45,   58,  101,   52,   69,   56,   59,   48,
        53,   60,   65,   49,   62,   50,   54,   66,   63,   67,
        61,   77,   70,   68,   73,   91,   74,   64,   80,   78,
-       81,   36,   36,   36,   87,  123,   92,   79,   93,   94,
-       75,   76,   88,  102,  106,  103,  107,  134,  126,  127,
+       81,   36,   36,   36,   87,  124,   92,   79,   93,   94,
+       75,   76,   88,  102,  106,  103,  107,  135,  127,  128,
 
-      124,  128,  130,  131,  137,  178,  138,  148,  135,   39,
-      198,  304,  136,  139,  149,  303,  302,  179,  199,   33,
-       33,   33,   33,   33,   37,  301,  300,   37,   37,   84,
-       84,   84,   84,   86,  299,   86,   86,   86,  298,  297,
-      296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
-      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
-      276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
-      266,  265,  264,  263,  262,  261,  260,  259,  258,  257,
-      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
-      246,  245,  244,  243,  242,  241,  240,  239,  238,  237,
-
-      236,  235,  234,  233,  232,  231,  230,  229,  228,  227,
-      226,  225,  224,  223,  222,  221,  220,  219,  218,  217,
-      216,  215,  214,  213,  212,  211,  210,  209,  208,  207,
-      206,  205,  204,  203,  202,  201,  200,  197,  196,  195,
-      194,  193,  192,  191,  190,  189,  188,  187,  186,  185,
-      184,  183,  182,  181,  180,  177,  176,  175,  174,  173,
-      172,  171,  170,  169,  168,  167,  166,  165,  164,  163,
-      162,  161,  160,  159,  158,  157,  156,  155,  154,  153,
-      152,  151,  150,  147,  146,  145,  144,  143,  142,  141,
-      140,  133,  132,  129,  125,  122,  121,  120,  119,  118,
-
-      117,  116,  115,  114,  113,  112,  111,  110,  109,  108,
-      105,  104,   99,   98,   97,   96,   95,   90,   89,   38,
-       85,   83,   82,   72,   71,   57,   46,   42,   38,  305,
-        5,  305,  305,  305,  305,  305,  305,  305,  305,  305,
-      305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
-      305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
-      305,  305,  305,  305,  305
+      125,  129,  131,  132,  138,  180,  139,  149,  136,   39,
+      200,  306,  137,  140,  150,  305,  304,  181,  201,   33,
+       33,   33,   33,   33,   37,  303,  302,   37,   37,   84,
+       84,   84,   84,   86,  301,   86,   86,   86,  300,  299,
+      298,  297,  296,  295,  294,  293,  292,  291,  290,  289,
+      288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
+      278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
+      268,  267,  266,  265,  264,  263,  262,  261,  260,  259,
+      258,  257,  256,  255,  254,  253,  252,  251,  250,  249,
+      248,  247,  246,  245,  244,  243,  242,  241,  240,  239,
+
+      238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
+      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
+      218,  217,  216,  215,  214,  213,  212,  211,  210,  209,
+      208,  207,  206,  205,  204,  203,  202,  199,  198,  197,
+      196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
+      186,  185,  184,  183,  182,  179,  178,  177,  176,  175,
+      174,  173,  172,  171,  170,  169,  168,  167,  166,  165,
+      164,  163,  162,  161,  160,  159,  158,  157,  156,  155,
+      154,  153,  152,  151,  148,  147,  146,  145,  144,  143,
+      142,  141,  134,  133,  130,  126,  123,  122,  121,  120,
+
+      119,  118,  117,  116,  115,  114,  113,  112,  111,  110,
+      109,  108,  105,  104,   99,   98,   97,   96,   95,   90,
+       89,   38,   85,   83,   82,   72,   71,   57,   46,   42,
+       38,  307,    5,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307
     } ;
 
-static yyconst short int yy_chk[366] =
+static yyconst short int yy_chk[368] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -554,35 +557,35 @@
        30,   36,   36,   36,   40,   72,   43,   29,   44,   44,
        28,   28,   40,   51,   54,   51,   54,   79,   74,   74,
 
-       72,   74,   76,   76,   80,  127,   80,   94,   79,  308,
-      149,  303,   79,   80,   94,  302,  295,  127,  149,  306,
-      306,  306,  306,  306,  307,  294,  293,  307,  307,  309,
-      309,  309,  309,  310,  290,  310,  310,  310,  288,  285,
-      283,  282,  281,  277,  276,  274,  273,  272,  271,  269,
-      268,  266,  265,  264,  260,  258,  257,  256,  255,  254,
-      251,  249,  248,  247,  246,  243,  242,  241,  240,  239,
-      237,  236,  235,  234,  233,  230,  229,  228,  227,  226,
-      225,  223,  222,  220,  219,  218,  217,  216,  215,  214,
-      213,  212,  210,  209,  207,  206,  204,  203,  200,  199,
-
-      198,  197,  196,  195,  194,  193,  190,  189,  188,  187,
-      185,  184,  183,  182,  181,  180,  179,  178,  177,  176,
-      175,  174,  173,  172,  170,  166,  164,  162,  161,  160,
-      159,  158,  157,  155,  154,  153,  150,  148,  147,  146,
-      145,  144,  143,  141,  140,  139,  138,  137,  135,  134,
-      133,  132,  131,  130,  129,  126,  125,  124,  123,  122,
-      121,  120,  119,  116,  114,  113,  112,  111,  110,  108,
-      107,  106,  105,  104,  103,  102,  101,  100,   99,   98,
-       97,   96,   95,   93,   92,   91,   90,   88,   83,   82,
-       81,   78,   77,   75,   73,   71,   70,   69,   68,   66,
-
-       65,   64,   63,   62,   61,   60,   59,   58,   57,   56,
-       53,   52,   49,   48,   47,   46,   45,   42,   41,   38,
-       34,   32,   31,   27,   26,   20,   16,   14,   11,    5,
-      305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
-      305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
-      305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
-      305,  305,  305,  305,  305
+       72,   74,   76,   76,   80,  128,   80,   94,   79,  310,
+      150,  305,   79,   80,   94,  304,  297,  128,  150,  308,
+      308,  308,  308,  308,  309,  296,  295,  309,  309,  311,
+      311,  311,  311,  312,  292,  312,  312,  312,  290,  287,
+      285,  284,  283,  279,  278,  276,  275,  274,  273,  271,
+      270,  268,  267,  266,  262,  260,  259,  258,  257,  256,
+      253,  251,  250,  249,  248,  245,  244,  243,  242,  241,
+      239,  238,  237,  236,  235,  232,  231,  230,  229,  228,
+      227,  225,  224,  222,  221,  220,  219,  218,  217,  216,
+      215,  214,  212,  211,  209,  208,  206,  205,  202,  201,
+
+      200,  199,  198,  197,  196,  195,  192,  191,  190,  189,
+      187,  186,  185,  184,  183,  182,  181,  180,  179,  178,
+      177,  176,  175,  174,  172,  167,  165,  163,  162,  161,
+      160,  159,  158,  156,  155,  154,  151,  149,  148,  147,
+      146,  145,  144,  142,  141,  140,  139,  138,  136,  135,
+      134,  133,  132,  131,  130,  127,  126,  125,  124,  123,
+      122,  121,  120,  119,  116,  114,  113,  112,  111,  110,
+      108,  107,  106,  105,  104,  103,  102,  101,  100,   99,
+       98,   97,   96,   95,   93,   92,   91,   90,   88,   83,
+       82,   81,   78,   77,   75,   73,   71,   70,   69,   68,
+
+       67,   66,   65,   64,   63,   62,   61,   60,   59,   58,
+       57,   56,   53,   52,   49,   48,   47,   46,   45,   42,
+       41,   38,   34,   32,   31,   27,   26,   20,   16,   14,
+       11,    5,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307
     } ;
 
 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -620,7 +623,7 @@
 quoted_ident	(\"[^\"]*\")+
 identifier		({ident_start}{ident_cont}*|{quoted_ident})
 */
-#line 624 "scan.c"
+#line 627 "scan.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -778,7 +781,7 @@
 
 	BEGIN(INITIAL);
 
-#line 782 "scan.c"
+#line 785 "scan.c"
 
 	if ( yy_init )
 		{
@@ -826,14 +829,14 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 306 )
+				if ( yy_current_state >= 308 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			*yy_state_ptr++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 331 );
+		while ( yy_base[yy_current_state] != 333 );
 
 yy_find_action:
 		yy_current_state = *--yy_state_ptr;
@@ -1067,156 +1070,156 @@
 case 40:
 YY_RULE_SETUP
 #line 79 "scan.l"
-{ return K_ORIGIN;				}
+{ return K_ONLY;				}
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
 #line 80 "scan.l"
-{ return K_PATH;				}
+{ return K_ORIGIN;				}
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
 #line 81 "scan.l"
-{ return K_PROVIDER;			}
+{ return K_PATH;				}
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
 #line 82 "scan.l"
-{ return K_QUALIFIED;			}
+{ return K_PROVIDER;			}
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
 #line 83 "scan.l"
-{ return K_RECEIVER;			}
+{ return K_QUALIFIED;			}
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
 #line 84 "scan.l"
-{ return K_RESTART;				}
+{ return K_RECEIVER;			}
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
 #line 85 "scan.l"
-{ return K_SCRIPT;				}
+{ return K_RESTART;				}
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
 #line 86 "scan.l"
-{ return K_SEQUENCE;			}
+{ return K_SCRIPT;				}
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
 #line 87 "scan.l"
-{ return K_SERIAL;				}
+{ return K_SEQUENCE;			}
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
 #line 88 "scan.l"
-{ return K_SERVER;				}
+{ return K_SERIAL;				}
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
 #line 89 "scan.l"
-{ return K_SET;					}
+{ return K_SERVER;				}
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
 #line 90 "scan.l"
-{ return K_STORE;				}
+{ return K_SET;					}
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
 #line 91 "scan.l"
-{ return K_SUBSCRIBE;			}
+{ return K_STORE;				}
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
 #line 92 "scan.l"
-{ return K_SUCCESS;				}
+{ return K_SUBSCRIBE;			}
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
 #line 93 "scan.l"
-{ return K_TABLE;				}
+{ return K_SUCCESS;				}
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
 #line 94 "scan.l"
-{ return K_TIMEOUT;				}
+{ return K_TABLE;				}
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
 #line 95 "scan.l"
-{ return K_TRIGGER;				}
+{ return K_TIMEOUT;				}
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
 #line 96 "scan.l"
-{ return K_TRUE;				}
+{ return K_TRIGGER;				}
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
 #line 97 "scan.l"
-{ return K_TRY;					}
+{ return K_TRUE;				}
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
 #line 98 "scan.l"
-{ return K_UNINSTALL;			}
+{ return K_TRY;					}
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
 #line 99 "scan.l"
-{ return K_UNLOCK;				}
+{ return K_UNINSTALL;			}
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
 #line 100 "scan.l"
-{ return K_UNSUBSCRIBE;			}
+{ return K_UNLOCK;				}
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
 #line 101 "scan.l"
-{ return K_UPDATE;				}
+{ return K_UNSUBSCRIBE;			}
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
 #line 102 "scan.l"
-{ return K_YES;					}
+{ return K_UPDATE;				}
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
 #line 103 "scan.l"
-{ return K_WAIT;				}
+{ return K_YES;					}
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 105 "scan.l"
-{ return T_NUMBER;				}
+#line 104 "scan.l"
+{ return K_WAIT;				}
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
 #line 106 "scan.l"
-{ return T_IDENT;				}
+{ return T_NUMBER;				}
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 108 "scan.l"
-;
+#line 107 "scan.l"
+{ return T_IDENT;				}
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 110 "scan.l"
+#line 109 "scan.l"
+;
+	YY_BREAK
+case 69:
+YY_RULE_SETUP
+#line 111 "scan.l"
 { 
 				  start_charpos = yytext;
 				  BEGIN(IN_STRING);
 				}
 	YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 114 "scan.l"
-{ }
-	YY_BREAK
 case 70:
 YY_RULE_SETUP
 #line 115 "scan.l"
@@ -1230,6 +1233,11 @@
 case 72:
 YY_RULE_SETUP
 #line 117 "scan.l"
+{ }
+	YY_BREAK
+case 73:
+YY_RULE_SETUP
+#line 118 "scan.l"
 {
 				  yyleng += (yytext - start_charpos) - 2;
 				  yytext = start_charpos + 1;
@@ -1237,27 +1245,27 @@
 				  return T_LITERAL;
 				}
 	YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 123 "scan.l"
+#line 124 "scan.l"
 {}
 	YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 125 "scan.l"
+#line 126 "scan.l"
 ;
 	YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 127 "scan.l"
+#line 128 "scan.l"
 { return yytext[0];				}
 	YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 129 "scan.l"
+#line 130 "scan.l"
 ECHO;
 	YY_BREAK
-#line 1261 "scan.c"
+#line 1269 "scan.c"
 			case YY_STATE_EOF(INITIAL):
 			case YY_STATE_EOF(IN_STRING):
 				yyterminate();
@@ -1547,7 +1555,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 306 )
+			if ( yy_current_state >= 308 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1577,11 +1585,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 306 )
+		if ( yy_current_state >= 308 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 305);
+	yy_is_jam = (yy_current_state == 307);
 	if ( ! yy_is_jam )
 		*yy_state_ptr++ = yy_current_state;
 
@@ -2142,7 +2150,7 @@
 	return 0;
 	}
 #endif
-#line 129 "scan.l"
+#line 130 "scan.l"
 
 
 void
Index: parser.y
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/parser.y,v
retrieving revision 1.16
retrieving revision 1.17
diff -Lsrc/slonik/parser.y -Lsrc/slonik/parser.y -u -w -r1.16 -r1.17
--- src/slonik/parser.y
+++ src/slonik/parser.y
@@ -27,6 +27,7 @@
 	O_CONNINFO,
 	O_CONNRETRY,
 	O_EVENT_NODE,
+	O_EXECUTE_ONLY_ON,
 	O_FILENAME,
 	O_FORWARD,
 	O_FQNAME,
@@ -200,6 +201,7 @@
 %token	K_OFF
 %token	K_OLD
 %token	K_ON
+%token	K_ONLY
 %token	K_ORIGIN
 %token	K_PATH
 %token	K_PROVIDER
@@ -1191,6 +1193,7 @@
 							STMT_OPTION_INT( O_SET_ID, -1 ),
 							STMT_OPTION_STR( O_FILENAME, NULL ),
 							STMT_OPTION_INT( O_EVENT_NODE, 1 ),
+							STMT_OPTION_INT( O_EXECUTE_ONLY_ON, -1 ),
 							STMT_OPTION_END
 						};
 
@@ -1206,6 +1209,7 @@
 							new->ddl_setid		= opt[0].ival;
 							new->ddl_fname		= opt[1].str;
 							new->ev_origin		= opt[2].ival;
+							new->only_on_node	= opt[3].ival;
 							new->ddl_fd			= -1;
 						}
 						else
@@ -1449,6 +1453,11 @@
 						$3->opt_code	= O_TIMEOUT;
 						$$ = $3;
 					}
+					| K_EXECUTE K_ONLY K_ON '=' option_item_id
+					{
+						$5->opt_code	= O_EXECUTE_ONLY_ON;
+						$$ = $5;
+					}
 					;
 
 option_item_id		: id
@@ -1570,6 +1579,7 @@
 		case O_CONNINFO:		return "conninfo";
 		case O_CONNRETRY:		return "connretry";
 		case O_EVENT_NODE:		return "event node";
+		case O_EXECUTE_ONLY_ON:	return "execute only on";
 		case O_FILENAME:		return "filename";
 		case O_FORWARD:			return "forward";
 		case O_FQNAME:			return "full qualified name";
Index: slonik.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/slonik.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -Lsrc/slonik/slonik.c -Lsrc/slonik/slonik.c -u -w -r1.29 -r1.30
--- src/slonik/slonik.c
+++ src/slonik/slonik.c
@@ -3351,9 +3351,9 @@
 
 	dstring_init(&query);
 	slon_mkquery(&query,
-			"select \"_%s\".ddlScript(%d, '%q'); ",
+			"select \"_%s\".ddlScript(%d, '%q', %d); ",
 			stmt->hdr.script->clustername,
-			stmt->ddl_setid, dstring_data(&script));
+			stmt->ddl_setid, dstring_data(&script), stmt->only_on_node);
 	dstring_free(&script);
 	if (db_exec_evcommand((SlonikStmt *)stmt, adminfo1, &query) < 0)
 	{
Index: parser.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/parser.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -Lsrc/slonik/parser.c -Lsrc/slonik/parser.c -u -w -r1.17 -r1.18
--- src/slonik/parser.c
+++ src/slonik/parser.c
@@ -92,34 +92,35 @@
      K_OFF = 294,
      K_OLD = 295,
      K_ON = 296,
-     K_ORIGIN = 297,
-     K_PATH = 298,
-     K_PROVIDER = 299,
-     K_QUALIFIED = 300,
-     K_RECEIVER = 301,
-     K_RESTART = 302,
-     K_SCRIPT = 303,
-     K_SEQUENCE = 304,
-     K_SERIAL = 305,
-     K_SERVER = 306,
-     K_SET = 307,
-     K_STORE = 308,
-     K_SUBSCRIBE = 309,
-     K_SUCCESS = 310,
-     K_TABLE = 311,
-     K_TIMEOUT = 312,
-     K_TRIGGER = 313,
-     K_TRUE = 314,
-     K_TRY = 315,
-     K_UNINSTALL = 316,
-     K_UNLOCK = 317,
-     K_UNSUBSCRIBE = 318,
-     K_UPDATE = 319,
-     K_YES = 320,
-     K_WAIT = 321,
-     T_IDENT = 322,
-     T_LITERAL = 323,
-     T_NUMBER = 324
+     K_ONLY = 297,
+     K_ORIGIN = 298,
+     K_PATH = 299,
+     K_PROVIDER = 300,
+     K_QUALIFIED = 301,
+     K_RECEIVER = 302,
+     K_RESTART = 303,
+     K_SCRIPT = 304,
+     K_SEQUENCE = 305,
+     K_SERIAL = 306,
+     K_SERVER = 307,
+     K_SET = 308,
+     K_STORE = 309,
+     K_SUBSCRIBE = 310,
+     K_SUCCESS = 311,
+     K_TABLE = 312,
+     K_TIMEOUT = 313,
+     K_TRIGGER = 314,
+     K_TRUE = 315,
+     K_TRY = 316,
+     K_UNINSTALL = 317,
+     K_UNLOCK = 318,
+     K_UNSUBSCRIBE = 319,
+     K_UPDATE = 320,
+     K_YES = 321,
+     K_WAIT = 322,
+     T_IDENT = 323,
+     T_LITERAL = 324,
+     T_NUMBER = 325
    };
 #endif
 #define K_ADD 258
@@ -161,34 +162,35 @@
 #define K_OFF 294
 #define K_OLD 295
 #define K_ON 296
-#define K_ORIGIN 297
-#define K_PATH 298
-#define K_PROVIDER 299
-#define K_QUALIFIED 300
-#define K_RECEIVER 301
-#define K_RESTART 302
-#define K_SCRIPT 303
-#define K_SEQUENCE 304
-#define K_SERIAL 305
-#define K_SERVER 306
-#define K_SET 307
-#define K_STORE 308
-#define K_SUBSCRIBE 309
-#define K_SUCCESS 310
-#define K_TABLE 311
-#define K_TIMEOUT 312
-#define K_TRIGGER 313
-#define K_TRUE 314
-#define K_TRY 315
-#define K_UNINSTALL 316
-#define K_UNLOCK 317
-#define K_UNSUBSCRIBE 318
-#define K_UPDATE 319
-#define K_YES 320
-#define K_WAIT 321
-#define T_IDENT 322
-#define T_LITERAL 323
-#define T_NUMBER 324
+#define K_ONLY 297
+#define K_ORIGIN 298
+#define K_PATH 299
+#define K_PROVIDER 300
+#define K_QUALIFIED 301
+#define K_RECEIVER 302
+#define K_RESTART 303
+#define K_SCRIPT 304
+#define K_SEQUENCE 305
+#define K_SERIAL 306
+#define K_SERVER 307
+#define K_SET 308
+#define K_STORE 309
+#define K_SUBSCRIBE 310
+#define K_SUCCESS 311
+#define K_TABLE 312
+#define K_TIMEOUT 313
+#define K_TRIGGER 314
+#define K_TRUE 315
+#define K_TRY 316
+#define K_UNINSTALL 317
+#define K_UNLOCK 318
+#define K_UNSUBSCRIBE 319
+#define K_UPDATE 320
+#define K_YES 321
+#define K_WAIT 322
+#define T_IDENT 323
+#define T_LITERAL 324
+#define T_NUMBER 325
 
 
 
@@ -224,6 +226,7 @@
 	O_CONNINFO,
 	O_CONNRETRY,
 	O_EVENT_NODE,
+	O_EXECUTE_ONLY_ON,
 	O_FILENAME,
 	O_FORWARD,
 	O_FQNAME,
@@ -306,7 +309,7 @@
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 101 "parser.y"
+#line 102 "parser.y"
 typedef union YYSTYPE {
 	int32			ival;
 	char		   *str;
@@ -315,7 +318,7 @@
 	SlonikStmt	   *statement;
 } YYSTYPE;
 /* Line 191 of yacc.c.  */
-#line 318 "y.tab.c"
+#line 321 "y.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -327,7 +330,7 @@
 
 
 /* Line 214 of yacc.c.  */
-#line 330 "y.tab.c"
+#line 333 "y.tab.c"
 
 #if ! defined (yyoverflow) || YYERROR_VERBOSE
 
@@ -426,20 +429,20 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   290
+#define YYLAST   297
 
 /* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  78
+#define YYNTOKENS  79
 /* YYNNTS -- Number of nonterminals. */
 #define YYNNTS  55
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  126
+#define YYNRULES  127
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  274
+#define YYNSTATES  279
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   324
+#define YYMAXUTOK   325
 
 #define YYTRANSLATE(YYX) 						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -451,15 +454,15 @@
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-      75,    76,     2,     2,    77,    74,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,    71,
-       2,    70,     2,     2,     2,     2,     2,     2,     2,     2,
+      76,    77,     2,     2,    78,    75,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,    72,
+       2,    71,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    72,     2,    73,     2,     2,     2,     2,
+       2,     2,     2,    73,     2,    74,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -479,7 +482,7 @@
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69
+      65,    66,    67,    68,    69,    70
 };
 
 #if YYDEBUG
@@ -498,78 +501,79 @@
      297,   303,   305,   310,   312,   316,   320,   325,   330,   334,
      338,   342,   347,   352,   356,   360,   364,   368,   372,   377,
      382,   387,   392,   397,   403,   407,   411,   415,   419,   423,
-     427,   431,   436,   440,   442,   444,   446,   448,   450,   452,
-     454,   456,   458,   460,   462,   464,   466
+     427,   431,   436,   440,   446,   448,   450,   452,   454,   456,
+     458,   460,   462,   464,   466,   468,   470,   472
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
-      79,     0,    -1,    80,    81,    83,    -1,   132,     8,    35,
-      70,   130,    71,    -1,    82,    -1,    82,    81,    -1,   132,
-      38,   129,     4,    12,    70,   131,    71,    -1,    84,    -1,
-      84,    83,    -1,    85,    -1,    89,    -1,   132,    60,    72,
-      88,    73,    86,    -1,   132,    60,    72,    88,    73,    87,
-      86,    -1,   132,    60,    72,    88,    73,    86,    87,    -1,
-     132,    60,    72,    88,    73,    87,    -1,   132,    60,    72,
-      88,    73,    -1,    41,    17,    72,    83,    73,    -1,    41,
-      55,    72,    83,    73,    -1,    89,    -1,    89,    88,    -1,
-      91,    -1,    92,    -1,    93,    -1,    96,    -1,    97,    -1,
-      98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,
-     103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,    -1,
-     108,    -1,   109,    -1,   110,    -1,   111,    -1,   112,    -1,
-     113,    -1,   114,    -1,   115,    -1,   116,    -1,   117,    -1,
-     118,    -1,   119,    -1,   120,    -1,    -1,    95,    71,    90,
-      -1,   132,    16,   131,    71,    -1,   132,    20,    94,    71,
-      -1,   132,    47,    38,   129,    71,    -1,    69,    -1,    74,
-      94,    -1,   132,     1,    -1,   132,    29,     8,   121,    -1,
-     132,    53,    38,   121,    -1,   132,    15,    38,   121,    -1,
-     132,    21,   121,    -1,   132,    61,    38,   121,    -1,   132,
-      53,    43,   121,    -1,   132,    15,    43,   121,    -1,   132,
-      53,    31,   121,    -1,   132,    15,    31,   121,    -1,   132,
-      14,    52,   121,    -1,   132,    15,    52,   121,    -1,   132,
-      33,    52,   121,    -1,   132,    56,     3,    30,   121,    -1,
-     132,    52,     3,    56,   121,    -1,   132,    52,     3,    49,
-     121,    -1,   132,    53,    58,   121,    -1,   132,    15,    58,
-     121,    -1,   132,    54,    52,   121,    -1,   132,    63,    52,
-     121,    -1,   132,    32,    52,   121,    -1,   132,    62,    52,
-     121,    -1,   132,    34,    52,   121,    -1,   132,    19,    48,
-     121,    -1,   132,    64,    27,   121,    -1,   132,    66,    24,
-      18,   121,    -1,    71,    -1,    75,   122,    76,    71,    -1,
-     123,    -1,   123,    77,   122,    -1,    28,    70,   124,    -1,
-       6,    38,    70,   124,    -1,    18,    38,    70,   124,    -1,
-      51,    70,   124,    -1,     7,    70,   124,    -1,    42,    70,
-     124,    -1,    40,    42,    70,   124,    -1,    36,    42,    70,
-     124,    -1,    46,    70,   124,    -1,    44,    70,   124,    -1,
-      13,    70,   124,    -1,    10,    70,   125,    -1,    12,    70,
-     125,    -1,    52,    28,    70,   124,    -1,     3,    28,    70,
-     124,    -1,    38,    28,    70,   124,    -1,    56,    28,    70,
-     124,    -1,    58,    35,    70,   125,    -1,    26,    45,    35,
-      70,   125,    -1,    30,    70,   125,    -1,    30,    70,    50,
-      -1,    25,    70,   126,    -1,    23,    70,   125,    -1,    42,
-      70,     5,    -1,    11,    70,   124,    -1,    11,    70,     5,
-      -1,    66,    41,    70,   124,    -1,    57,    70,   124,    -1,
-     129,    -1,   131,    -1,   127,    -1,   128,    -1,    65,    -1,
-      41,    -1,    59,    -1,    37,    -1,    39,    -1,    22,    -1,
-      69,    -1,    67,    -1,    68,    -1,    -1
+      80,     0,    -1,    81,    82,    84,    -1,   133,     8,    35,
+      71,   131,    72,    -1,    83,    -1,    83,    82,    -1,   133,
+      38,   130,     4,    12,    71,   132,    72,    -1,    85,    -1,
+      85,    84,    -1,    86,    -1,    90,    -1,   133,    61,    73,
+      89,    74,    87,    -1,   133,    61,    73,    89,    74,    88,
+      87,    -1,   133,    61,    73,    89,    74,    87,    88,    -1,
+     133,    61,    73,    89,    74,    88,    -1,   133,    61,    73,
+      89,    74,    -1,    41,    17,    73,    84,    74,    -1,    41,
+      56,    73,    84,    74,    -1,    90,    -1,    90,    89,    -1,
+      92,    -1,    93,    -1,    94,    -1,    97,    -1,    98,    -1,
+      99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,
+     104,    -1,   105,    -1,   106,    -1,   107,    -1,   108,    -1,
+     109,    -1,   110,    -1,   111,    -1,   112,    -1,   113,    -1,
+     114,    -1,   115,    -1,   116,    -1,   117,    -1,   118,    -1,
+     119,    -1,   120,    -1,   121,    -1,    -1,    96,    72,    91,
+      -1,   133,    16,   132,    72,    -1,   133,    20,    95,    72,
+      -1,   133,    48,    38,   130,    72,    -1,    70,    -1,    75,
+      95,    -1,   133,     1,    -1,   133,    29,     8,   122,    -1,
+     133,    54,    38,   122,    -1,   133,    15,    38,   122,    -1,
+     133,    21,   122,    -1,   133,    62,    38,   122,    -1,   133,
+      54,    44,   122,    -1,   133,    15,    44,   122,    -1,   133,
+      54,    31,   122,    -1,   133,    15,    31,   122,    -1,   133,
+      14,    53,   122,    -1,   133,    15,    53,   122,    -1,   133,
+      33,    53,   122,    -1,   133,    57,     3,    30,   122,    -1,
+     133,    53,     3,    57,   122,    -1,   133,    53,     3,    50,
+     122,    -1,   133,    54,    59,   122,    -1,   133,    15,    59,
+     122,    -1,   133,    55,    53,   122,    -1,   133,    64,    53,
+     122,    -1,   133,    32,    53,   122,    -1,   133,    63,    53,
+     122,    -1,   133,    34,    53,   122,    -1,   133,    19,    49,
+     122,    -1,   133,    65,    27,   122,    -1,   133,    67,    24,
+      18,   122,    -1,    72,    -1,    76,   123,    77,    72,    -1,
+     124,    -1,   124,    78,   123,    -1,    28,    71,   125,    -1,
+       6,    38,    71,   125,    -1,    18,    38,    71,   125,    -1,
+      52,    71,   125,    -1,     7,    71,   125,    -1,    43,    71,
+     125,    -1,    40,    43,    71,   125,    -1,    36,    43,    71,
+     125,    -1,    47,    71,   125,    -1,    45,    71,   125,    -1,
+      13,    71,   125,    -1,    10,    71,   126,    -1,    12,    71,
+     126,    -1,    53,    28,    71,   125,    -1,     3,    28,    71,
+     125,    -1,    38,    28,    71,   125,    -1,    57,    28,    71,
+     125,    -1,    59,    35,    71,   126,    -1,    26,    46,    35,
+      71,   126,    -1,    30,    71,   126,    -1,    30,    71,    51,
+      -1,    25,    71,   127,    -1,    23,    71,   126,    -1,    43,
+      71,     5,    -1,    11,    71,   125,    -1,    11,    71,     5,
+      -1,    67,    41,    71,   125,    -1,    58,    71,   125,    -1,
+      19,    42,    41,    71,   125,    -1,   130,    -1,   132,    -1,
+     128,    -1,   129,    -1,    66,    -1,    41,    -1,    60,    -1,
+      37,    -1,    39,    -1,    22,    -1,    70,    -1,    68,    -1,
+      69,    -1,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short yyrline[] =
 {
-       0,   242,   242,   257,   263,   265,   269,   287,   289,   293,
-     295,   299,   316,   334,   352,   369,   386,   389,   393,   395,
-     399,   401,   403,   405,   407,   409,   411,   413,   415,   417,
-     419,   421,   423,   425,   427,   429,   431,   433,   435,   437,
-     439,   441,   443,   445,   447,   449,   451,   453,   455,   455,
-     459,   476,   493,   510,   512,   516,   531,   559,   589,   617,
-     645,   671,   703,   733,   763,   793,   823,   851,   881,   909,
-     947,   981,  1011,  1041,  1073,  1101,  1129,  1157,  1187,  1218,
-    1244,  1276,  1278,  1282,  1284,  1288,  1293,  1298,  1303,  1308,
-    1313,  1318,  1323,  1328,  1333,  1338,  1343,  1348,  1353,  1358,
-    1363,  1368,  1373,  1378,  1383,  1388,  1401,  1406,  1411,  1424,
-    1429,  1442,  1447,  1454,  1468,  1482,  1494,  1508,  1509,  1510,
-    1513,  1514,  1515,  1518,  1524,  1536,  1549
+       0,   244,   244,   259,   265,   267,   271,   289,   291,   295,
+     297,   301,   318,   336,   354,   371,   388,   391,   395,   397,
+     401,   403,   405,   407,   409,   411,   413,   415,   417,   419,
+     421,   423,   425,   427,   429,   431,   433,   435,   437,   439,
+     441,   443,   445,   447,   449,   451,   453,   455,   457,   457,
+     461,   478,   495,   512,   514,   518,   533,   561,   591,   619,
+     647,   673,   705,   735,   765,   795,   825,   853,   883,   911,
+     949,   983,  1013,  1043,  1075,  1103,  1131,  1159,  1189,  1222,
+    1248,  1280,  1282,  1286,  1288,  1292,  1297,  1302,  1307,  1312,
+    1317,  1322,  1327,  1332,  1337,  1342,  1347,  1352,  1357,  1362,
+    1367,  1372,  1377,  1382,  1387,  1392,  1405,  1410,  1415,  1428,
+    1433,  1446,  1451,  1456,  1463,  1477,  1491,  1503,  1517,  1518,
+    1519,  1522,  1523,  1524,  1527,  1533,  1545,  1558
 };
 #endif
 
@@ -584,24 +588,24 @@
   "K_EVENT", "K_EXECUTE", "K_EXIT", "K_FAILOVER", "K_FALSE", "K_FILENAME", 
   "K_FOR", "K_FORWARD", "K_FULL", "K_FUNCTIONS", "K_ID", "K_INIT", 
   "K_KEY", "K_LISTEN", "K_LOCK", "K_MERGE", "K_MOVE", "K_NAME", "K_NEW", 
-  "K_NO", "K_NODE", "K_OFF", "K_OLD", "K_ON", "K_ORIGIN", "K_PATH", 
-  "K_PROVIDER", "K_QUALIFIED", "K_RECEIVER", "K_RESTART", "K_SCRIPT", 
-  "K_SEQUENCE", "K_SERIAL", "K_SERVER", "K_SET", "K_STORE", "K_SUBSCRIBE", 
-  "K_SUCCESS", "K_TABLE", "K_TIMEOUT", "K_TRIGGER", "K_TRUE", "K_TRY", 
-  "K_UNINSTALL", "K_UNLOCK", "K_UNSUBSCRIBE", "K_UPDATE", "K_YES", 
-  "K_WAIT", "T_IDENT", "T_LITERAL", "T_NUMBER", "'='", "';'", "'{'", 
-  "'}'", "'-'", "'('", "')'", "','", "$accept", "script", 
-  "hdr_clustername", "hdr_admconninfos", "hdr_admconninfo", "stmts", 
-  "stmt", "stmt_try", "try_on_error", "try_on_success", "try_stmts", 
-  "try_stmt", "@1", "stmt_echo", "stmt_exit", "stmt_restart_node", 
-  "exit_code", "stmt_error", "stmt_init_cluster", "stmt_store_node", 
-  "stmt_drop_node", "stmt_failed_node", "stmt_uninstall_node", 
-  "stmt_store_path", "stmt_drop_path", "stmt_store_listen", 
-  "stmt_drop_listen", "stmt_create_set", "stmt_drop_set", 
-  "stmt_merge_set", "stmt_table_add_key", "stmt_set_add_table", 
-  "stmt_set_add_sequence", "stmt_store_trigger", "stmt_drop_trigger", 
-  "stmt_subscribe_set", "stmt_unsubscribe_set", "stmt_lock_set", 
-  "stmt_unlock_set", "stmt_move_set", "stmt_ddl_script", 
+  "K_NO", "K_NODE", "K_OFF", "K_OLD", "K_ON", "K_ONLY", "K_ORIGIN", 
+  "K_PATH", "K_PROVIDER", "K_QUALIFIED", "K_RECEIVER", "K_RESTART", 
+  "K_SCRIPT", "K_SEQUENCE", "K_SERIAL", "K_SERVER", "K_SET", "K_STORE", 
+  "K_SUBSCRIBE", "K_SUCCESS", "K_TABLE", "K_TIMEOUT", "K_TRIGGER", 
+  "K_TRUE", "K_TRY", "K_UNINSTALL", "K_UNLOCK", "K_UNSUBSCRIBE", 
+  "K_UPDATE", "K_YES", "K_WAIT", "T_IDENT", "T_LITERAL", "T_NUMBER", 
+  "'='", "';'", "'{'", "'}'", "'-'", "'('", "')'", "','", "$accept", 
+  "script", "hdr_clustername", "hdr_admconninfos", "hdr_admconninfo", 
+  "stmts", "stmt", "stmt_try", "try_on_error", "try_on_success", 
+  "try_stmts", "try_stmt", "@1", "stmt_echo", "stmt_exit", 
+  "stmt_restart_node", "exit_code", "stmt_error", "stmt_init_cluster", 
+  "stmt_store_node", "stmt_drop_node", "stmt_failed_node", 
+  "stmt_uninstall_node", "stmt_store_path", "stmt_drop_path", 
+  "stmt_store_listen", "stmt_drop_listen", "stmt_create_set", 
+  "stmt_drop_set", "stmt_merge_set", "stmt_table_add_key", 
+  "stmt_set_add_table", "stmt_set_add_sequence", "stmt_store_trigger", 
+  "stmt_drop_trigger", "stmt_subscribe_set", "stmt_unsubscribe_set", 
+  "stmt_lock_set", "stmt_unlock_set", "stmt_move_set", "stmt_ddl_script", 
   "stmt_update_functions", "stmt_wait_event", "option_list", 
   "option_list_items", "option_list_item", "option_item_id", 
   "option_item_literal", "option_item_yn", "option_item_yn_yes", 
@@ -621,26 +625,26 @@
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-      61,    59,   123,   125,    45,    40,    41,    44
+     325,    61,    59,   123,   125,    45,    40,    41,    44
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const unsigned char yyr1[] =
 {
-       0,    78,    79,    80,    81,    81,    82,    83,    83,    84,
-      84,    85,    85,    85,    85,    85,    86,    87,    88,    88,
-      89,    89,    89,    89,    89,    89,    89,    89,    89,    89,
-      89,    89,    89,    89,    89,    89,    89,    89,    89,    89,
-      89,    89,    89,    89,    89,    89,    89,    89,    90,    89,
-      91,    92,    93,    94,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   121,   122,   122,   123,   123,   123,   123,   123,
-     123,   123,   123,   123,   123,   123,   123,   123,   123,   123,
-     123,   123,   123,   123,   123,   123,   123,   123,   123,   123,
-     123,   123,   123,   124,   125,   126,   126,   127,   127,   127,
-     128,   128,   128,   129,   130,   131,   132
+       0,    79,    80,    81,    82,    82,    83,    84,    84,    85,
+      85,    86,    86,    86,    86,    86,    87,    88,    89,    89,
+      90,    90,    90,    90,    90,    90,    90,    90,    90,    90,
+      90,    90,    90,    90,    90,    90,    90,    90,    90,    90,
+      90,    90,    90,    90,    90,    90,    90,    90,    91,    90,
+      92,    93,    94,    95,    95,    96,    97,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     121,   122,   122,   123,   123,   124,   124,   124,   124,   124,
+     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
+     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
+     124,   124,   124,   124,   125,   126,   127,   127,   128,   128,
+     128,   129,   129,   129,   130,   131,   132,   133
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -657,8 +661,8 @@
        5,     1,     4,     1,     3,     3,     4,     4,     3,     3,
        3,     4,     4,     3,     3,     3,     3,     3,     4,     4,
        4,     4,     4,     5,     3,     3,     3,     3,     3,     3,
-       3,     4,     3,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     0
+       3,     4,     3,     5,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     0
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -666,198 +670,198 @@
    means the default is an error.  */
 static const unsigned char yydefact[] =
 {
-     126,     0,   126,     0,     1,   126,     4,     0,     0,     2,
-     126,     9,    10,    20,    21,    22,     0,    23,    24,    25,
+     127,     0,   127,     0,     1,   127,     4,     0,     0,     2,
+     127,     9,    10,    20,    21,    22,     0,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
       46,    47,     0,     5,     0,     0,     8,    48,    55,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     123,     0,     0,    49,     0,     0,     0,     0,     0,     0,
-     125,     0,     0,    53,     0,     0,    81,     0,    59,     0,
+     124,     0,     0,    49,     0,     0,     0,     0,     0,     0,
+     126,     0,     0,    53,     0,     0,    81,     0,    59,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   126,     0,     0,     0,     0,     0,     0,   124,     0,
+       0,   127,     0,     0,     0,     0,     0,     0,   125,     0,
       65,    64,    58,    62,    66,    72,    50,    78,    54,    51,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    83,    56,    75,    67,
-      77,     0,     0,     0,    63,    57,    61,    71,    73,     0,
-       0,   126,     0,    60,    76,    74,    79,     0,     0,     3,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    83,    56,    75,
+      67,    77,     0,     0,     0,    63,    57,    61,    71,    73,
+       0,     0,   127,     0,    60,    76,    74,    79,     0,     0,
+       3,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    52,    70,    69,
-      68,    15,    19,    80,     0,     0,     0,    89,   113,    96,
-     114,   110,   109,    97,    95,     0,   107,   122,   120,   121,
-     118,   119,   117,   106,   115,   116,     0,    85,   105,   104,
-       0,     0,     0,   108,    90,    94,    93,    88,     0,     0,
-     112,     0,     0,    82,    84,     0,    11,    14,     0,    99,
-      86,    87,     0,    92,   100,    91,    98,   101,   102,   111,
-       0,     0,     0,    13,     0,    12,     6,   103,   126,   126,
-       0,     0,    16,    17
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    52,
+      70,    69,    68,    15,    19,    80,     0,     0,     0,    89,
+     114,    96,   115,   110,   109,    97,    95,     0,     0,   107,
+     123,   121,   122,   119,   120,   118,   106,   116,   117,     0,
+      85,   105,   104,     0,     0,     0,   108,    90,    94,    93,
+      88,     0,     0,   112,     0,     0,    82,    84,     0,    11,
+      14,     0,    99,    86,    87,     0,     0,    92,   100,    91,
+      98,   101,   102,   111,     0,     0,     0,    13,     0,    12,
+       6,   113,   103,   127,   127,     0,     0,    16,    17
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
-      -1,     1,     2,     5,     6,     9,    10,    11,   246,   247,
-     160,    12,    73,    13,    14,    15,    85,    16,    17,    18,
+      -1,     1,     2,     5,     6,     9,    10,    11,   249,   250,
+     161,    12,    73,    13,    14,    15,    85,    16,    17,    18,
       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    88,   145,   146,   207,   209,   223,   224,
-     225,   208,   109,   210,    42
+      39,    40,    41,    88,   146,   147,   209,   211,   226,   227,
+     228,   210,   109,   212,    42
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -162
+#define YYPACT_NINF -135
 static const short yypact[] =
 {
-    -162,    22,  -162,    26,  -162,  -162,    -3,     3,     8,  -162,
-       4,  -162,  -162,  -162,  -162,  -162,   -21,  -162,  -162,  -162,
-    -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,
-    -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,
-    -162,  -162,   105,  -162,   -18,   -11,  -162,  -162,  -162,    13,
-      18,     5,    27,    -6,   -27,    66,    32,    33,    37,    40,
-      89,    52,    42,    96,    28,    65,    55,    57,    84,    88,
-    -162,   109,    47,  -162,   -27,   -27,   -27,   -27,   -27,   -27,
-    -162,    44,   -27,  -162,    -6,    45,  -162,   224,  -162,   -27,
-     -27,   -27,   -27,   -18,   -29,   -27,   -27,   -27,   -27,   -27,
-      87,  -162,   -27,   -27,   -27,   -27,   100,   110,  -162,    56,
-    -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,
-      95,    90,    59,    60,    61,    62,    63,    97,    70,    71,
-      91,    72,    73,   102,   117,   104,    77,    78,    79,    80,
-     123,   125,    86,   119,   122,    94,    99,  -162,  -162,  -162,
-    -162,    93,   -27,   -27,  -162,  -162,  -162,  -162,  -162,   -27,
-     108,   111,   159,  -162,  -162,  -162,  -162,   -27,   107,  -162,
-     112,   113,   -18,     5,     0,     5,   -18,   115,     5,    23,
-     137,   -18,   -22,   116,   120,   124,    10,   -18,   -18,   -18,
-     126,   127,   -18,   128,   129,   118,   224,  -162,  -162,  -162,
-    -162,   146,  -162,  -162,     5,   -18,   -18,  -162,  -162,  -162,
-    -162,  -162,  -162,  -162,  -162,   -18,  -162,  -162,  -162,  -162,
-    -162,  -162,  -162,  -162,  -162,  -162,   130,  -162,  -162,  -162,
-     -18,   -18,   -18,  -162,  -162,  -162,  -162,  -162,   -18,   -18,
-    -162,     5,   -18,  -162,  -162,     2,   154,   160,   131,  -162,
-    -162,  -162,     5,  -162,  -162,  -162,  -162,  -162,  -162,  -162,
-     132,   133,   148,  -162,   190,  -162,  -162,  -162,  -162,  -162,
-     135,   136,  -162,  -162
+    -135,     8,  -135,    12,  -135,  -135,   -15,     7,    18,  -135,
+       4,  -135,  -135,  -135,  -135,  -135,   -30,  -135,  -135,  -135,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
+    -135,  -135,   112,  -135,    -1,     5,  -135,  -135,  -135,    19,
+      37,    -8,    22,   -24,   -13,    69,    26,    29,    31,    48,
+      84,    -9,    39,    90,    21,    59,    45,    51,    78,    82,
+    -135,   105,    42,  -135,   -13,   -13,   -13,   -13,   -13,   -13,
+    -135,    43,   -13,  -135,   -24,    44,  -135,   230,  -135,   -13,
+     -13,   -13,   -13,    -1,   -29,   -13,   -13,   -13,   -13,   -13,
+      87,  -135,   -13,   -13,   -13,   -13,    96,   106,  -135,    47,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
+      92,    85,    54,    58,    63,    64,    65,    99,    80,    67,
+      68,    94,    71,    72,   104,   102,   107,    77,    81,    83,
+      88,   121,   123,    91,   118,   114,    79,    86,  -135,  -135,
+    -135,  -135,    89,   -13,   -13,  -135,  -135,  -135,  -135,  -135,
+     -13,    97,    98,   167,  -135,  -135,  -135,  -135,   -13,   109,
+    -135,   113,   119,    -1,    -8,     0,    -8,    -1,   120,   117,
+      -8,    25,   135,    -1,   -33,   122,   124,   126,    10,    -1,
+      -1,    -1,   127,   131,    -1,   132,   133,   134,   230,  -135,
+    -135,  -135,  -135,   137,  -135,  -135,    -8,    -1,    -1,  -135,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,    -1,   136,  -135,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,   138,
+    -135,  -135,  -135,    -1,    -1,    -1,  -135,  -135,  -135,  -135,
+    -135,    -1,    -1,  -135,    -8,    -1,  -135,  -135,     2,   144,
+     148,   139,  -135,  -135,  -135,    -1,    -8,  -135,  -135,  -135,
+    -135,  -135,  -135,  -135,   140,   141,   149,  -135,   175,  -135,
+    -135,  -135,  -135,  -135,  -135,   142,   143,  -135,  -135
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
-    -162,  -162,  -162,   204,  -162,   -10,  -162,  -162,   -33,   -30,
-      58,   -95,  -162,  -162,  -162,  -162,   134,  -162,  -162,  -162,
-    -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,
-    -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,  -162,
-    -162,  -162,  -162,   -66,    21,  -162,  -134,  -161,  -162,  -162,
-    -162,   -26,  -162,   -49,     1
+    -135,  -135,  -135,   188,  -135,   -10,  -135,  -135,   -42,   -39,
+      50,   -95,  -135,  -135,  -135,  -135,   151,  -135,  -135,  -135,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
+    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
+    -135,  -135,  -135,   -65,    20,  -135,  -134,  -132,  -135,  -135,
+    -135,   -28,  -135,   -49,     1
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -127
+#define YYTABLE_NINF -128
 static const short yytable[] =
 {
-      46,     3,    81,     7,    -7,   211,   161,     7,   110,   111,
-     112,   113,   114,   115,   213,   233,   117,   216,    71,   260,
-     152,   229,     4,   147,   148,   149,   150,   153,   228,   154,
-     155,   156,   157,   158,     8,  -126,   163,   164,   165,   166,
-     212,    44,   214,    45,    86,   217,    80,   227,    87,    75,
-      47,    70,   234,   235,   236,   237,    76,   261,   240,    72,
-     218,    77,   219,    83,   220,    74,   161,   151,    84,    70,
-      78,   249,   250,    80,    89,    82,    79,    -7,    93,    70,
-     258,   251,   221,    95,    90,    91,   198,   199,   222,    92,
-      96,   267,    94,   200,    99,    97,   253,   254,   255,   100,
-     101,   203,   162,   102,   256,   257,    48,   103,   259,   104,
-      98,   105,   106,   107,   108,   116,   119,   159,   167,    49,
-      50,    51,   168,   170,    52,    53,    54,   169,   171,   172,
-     173,   174,   175,   176,    55,   177,   180,    56,    57,    58,
-     178,   179,   181,   182,   183,   184,   185,   186,   187,   188,
-     189,   190,    59,   191,   193,   248,   192,    60,    61,    62,
-      48,    63,   162,   194,   197,    64,    65,    66,    67,    68,
-     195,    69,   226,    49,    50,    51,   196,   204,    52,    53,
-      54,   201,   205,   206,   -18,   215,   230,   245,    55,   243,
-     231,    56,    57,    58,   232,   262,   238,   239,   241,   242,
-     252,   264,   266,   261,   268,   269,    59,   260,   272,   273,
-      43,    60,    61,    62,   265,    63,   263,   244,   118,   202,
-      65,    66,    67,    68,     0,    69,     0,   120,     0,     0,
-     121,   122,     0,     0,   123,   124,   125,   126,     0,     0,
-       0,     0,   127,     0,     0,     0,     0,   128,     0,   129,
-     130,     0,   131,     0,   132,     0,     0,     0,   270,   271,
-     133,     0,   134,     0,   135,     0,   136,     0,   137,     0,
-     138,     0,     0,     0,     0,   139,   140,     0,     0,     0,
-     141,   142,   143,     0,     0,     0,     0,     0,     0,     0,
-     144
+      46,     3,    81,     7,    -7,   213,   162,     7,     4,   110,
+     111,   112,   113,   114,   115,   236,    71,   117,   231,   264,
+       8,   153,    95,  -127,   148,   149,   150,   151,   154,    96,
+     155,   156,   157,   158,   159,    97,    80,   164,   165,   166,
+     167,   214,    47,   216,   215,    44,    83,   220,   219,   230,
+      98,    84,   232,    45,   237,   238,   239,   240,   265,    86,
+     243,    80,   221,    87,   222,   152,   223,   162,    75,    70,
+      70,    82,    74,   252,   253,    76,    72,    89,    -7,    90,
+      70,    77,    91,   254,    92,   224,    93,    94,   200,   201,
+      78,   225,    99,   100,   101,   202,    79,   102,   103,   257,
+     258,   259,   163,   205,   104,   105,   106,   260,   261,   107,
+     108,   263,   262,    48,   168,   116,   119,   160,   169,   170,
+     171,   271,   179,   172,   272,   173,    49,    50,    51,   174,
+     186,    52,    53,    54,   175,   176,   177,   178,   180,   181,
+     182,    55,   183,   184,    56,    57,    58,   185,   188,   192,
+     187,   193,   189,   195,   190,   196,   197,   251,   218,   191,
+      59,   199,   194,   163,   198,    60,    61,    62,    48,    63,
+     229,   203,   -18,    64,    65,    66,    67,    68,   248,    69,
+     206,    49,    50,    51,   207,   266,    52,    53,    54,   268,
+     208,   217,   264,   233,    43,   234,    55,   235,   241,    56,
+      57,    58,   242,   244,   245,   265,   246,   255,   269,   256,
+     267,   270,   204,   273,   274,    59,   277,   278,   247,     0,
+      60,    61,    62,     0,    63,     0,     0,     0,     0,    65,
+      66,    67,    68,   120,    69,   118,   121,   122,     0,     0,
+     123,   124,   125,   126,     0,     0,     0,     0,   127,   128,
+       0,     0,     0,   129,     0,   130,   131,     0,   132,     0,
+     133,     0,     0,   275,   276,     0,   134,     0,   135,     0,
+     136,     0,     0,   137,     0,   138,     0,   139,     0,     0,
+       0,     0,   140,   141,     0,     0,     0,   142,   143,   144,
+       0,     0,     0,     0,     0,     0,     0,   145
 };
 
 static const short yycheck[] =
 {
-      10,     0,    51,     2,     0,     5,   101,     6,    74,    75,
-      76,    77,    78,    79,   175,     5,    82,   178,    44,    17,
-      49,   182,     0,    89,    90,    91,    92,    56,    50,    95,
-      96,    97,    98,    99,     8,    38,   102,   103,   104,   105,
-     174,    38,   176,    35,    71,    22,    68,   181,    75,    31,
-      71,    69,   186,   187,   188,   189,    38,    55,   192,    70,
-      37,    43,    39,    69,    41,    52,   161,    93,    74,    69,
-      52,   205,   206,    68,     8,    48,    58,    73,    38,    69,
-     241,   215,    59,    31,    52,    52,   152,   153,    65,    52,
-      38,   252,     3,   159,    52,    43,   230,   231,   232,     3,
-      72,   167,   101,    38,   238,   239,     1,    52,   242,    52,
-      58,    27,    24,     4,    67,    71,    71,    30,    18,    14,
-      15,    16,    12,    28,    19,    20,    21,    71,    38,    70,
-      70,    70,    70,    70,    29,    38,    45,    32,    33,    34,
-      70,    70,    70,    70,    42,    28,    42,    70,    70,    70,
-      70,    28,    47,    28,    35,   204,    70,    52,    53,    54,
-       1,    56,   161,    41,    71,    60,    61,    62,    63,    64,
-      76,    66,    35,    14,    15,    16,    77,    70,    19,    20,
-      21,    73,    70,    70,    73,    70,    70,    41,    29,    71,
-      70,    32,    33,    34,    70,    41,    70,    70,    70,    70,
-      70,    41,    71,    55,    72,    72,    47,    17,    73,    73,
-       6,    52,    53,    54,   247,    56,   246,   196,    84,   161,
-      61,    62,    63,    64,    -1,    66,    -1,     3,    -1,    -1,
-       6,     7,    -1,    -1,    10,    11,    12,    13,    -1,    -1,
-      -1,    -1,    18,    -1,    -1,    -1,    -1,    23,    -1,    25,
-      26,    -1,    28,    -1,    30,    -1,    -1,    -1,   268,   269,
-      36,    -1,    38,    -1,    40,    -1,    42,    -1,    44,    -1,
-      46,    -1,    -1,    -1,    -1,    51,    52,    -1,    -1,    -1,
-      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      66
+      10,     0,    51,     2,     0,     5,   101,     6,     0,    74,
+      75,    76,    77,    78,    79,     5,    44,    82,    51,    17,
+       8,    50,    31,    38,    89,    90,    91,    92,    57,    38,
+      95,    96,    97,    98,    99,    44,    69,   102,   103,   104,
+     105,   175,    72,   177,   176,    38,    70,    22,   180,   183,
+      59,    75,   184,    35,   188,   189,   190,   191,    56,    72,
+     194,    69,    37,    76,    39,    93,    41,   162,    31,    70,
+      70,    49,    53,   207,   208,    38,    71,     8,    74,    53,
+      70,    44,    53,   217,    53,    60,    38,     3,   153,   154,
+      53,    66,    53,     3,    73,   160,    59,    38,    53,   233,
+     234,   235,   101,   168,    53,    27,    24,   241,   242,     4,
+      68,   245,   244,     1,    18,    72,    72,    30,    12,    72,
+      28,   255,    42,    38,   256,    71,    14,    15,    16,    71,
+      28,    19,    20,    21,    71,    71,    71,    38,    71,    71,
+      46,    29,    71,    71,    32,    33,    34,    43,    71,    28,
+      43,    28,    71,    35,    71,    41,    77,   206,    41,    71,
+      48,    72,    71,   162,    78,    53,    54,    55,     1,    57,
+      35,    74,    74,    61,    62,    63,    64,    65,    41,    67,
+      71,    14,    15,    16,    71,    41,    19,    20,    21,    41,
+      71,    71,    17,    71,     6,    71,    29,    71,    71,    32,
+      33,    34,    71,    71,    71,    56,    72,    71,   250,    71,
+     249,    72,   162,    73,    73,    48,    74,    74,   198,    -1,
+      53,    54,    55,    -1,    57,    -1,    -1,    -1,    -1,    62,
+      63,    64,    65,     3,    67,    84,     6,     7,    -1,    -1,
+      10,    11,    12,    13,    -1,    -1,    -1,    -1,    18,    19,
+      -1,    -1,    -1,    23,    -1,    25,    26,    -1,    28,    -1,
+      30,    -1,    -1,   273,   274,    -1,    36,    -1,    38,    -1,
+      40,    -1,    -1,    43,    -1,    45,    -1,    47,    -1,    -1,
+      -1,    -1,    52,    53,    -1,    -1,    -1,    57,    58,    59,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const unsigned char yystos[] =
 {
-       0,    79,    80,   132,     0,    81,    82,   132,     8,    83,
-      84,    85,    89,    91,    92,    93,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,   120,   132,    81,    38,    35,    83,    71,     1,    14,
-      15,    16,    19,    20,    21,    29,    32,    33,    34,    47,
-      52,    53,    54,    56,    60,    61,    62,    63,    64,    66,
-      69,   129,    70,    90,    52,    31,    38,    43,    52,    58,
-      68,   131,    48,    69,    74,    94,    71,    75,   121,     8,
-      52,    52,    52,    38,     3,    31,    38,    43,    58,    52,
-       3,    72,    38,    52,    52,    27,    24,     4,    67,   130,
-     121,   121,   121,   121,   121,   121,    71,   121,    94,    71,
-       3,     6,     7,    10,    11,    12,    13,    18,    23,    25,
-      26,    28,    30,    36,    38,    40,    42,    44,    46,    51,
-      52,    56,    57,    58,    66,   122,   123,   121,   121,   121,
-     121,   129,    49,    56,   121,   121,   121,   121,   121,    30,
-      88,    89,   132,   121,   121,   121,   121,    18,    12,    71,
-      28,    38,    70,    70,    70,    70,    70,    38,    70,    70,
-      45,    70,    70,    42,    28,    42,    70,    70,    70,    70,
-      28,    28,    70,    35,    41,    76,    77,    71,   121,   121,
-     121,    73,    88,   121,    70,    70,    70,   124,   129,   125,
-     131,     5,   124,   125,   124,    70,   125,    22,    37,    39,
-      41,    59,    65,   126,   127,   128,    35,   124,    50,   125,
-      70,    70,    70,     5,   124,   124,   124,   124,    70,    70,
-     124,    70,    70,    71,   122,    41,    86,    87,   131,   124,
-     124,   124,    70,   124,   124,   124,   124,   124,   125,   124,
-      17,    55,    41,    87,    41,    86,    71,   125,    72,    72,
-      83,    83,    73,    73
+       0,    80,    81,   133,     0,    82,    83,   133,     8,    84,
+      85,    86,    90,    92,    93,    94,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   133,    82,    38,    35,    84,    72,     1,    14,
+      15,    16,    19,    20,    21,    29,    32,    33,    34,    48,
+      53,    54,    55,    57,    61,    62,    63,    64,    65,    67,
+      70,   130,    71,    91,    53,    31,    38,    44,    53,    59,
+      69,   132,    49,    70,    75,    95,    72,    76,   122,     8,
+      53,    53,    53,    38,     3,    31,    38,    44,    59,    53,
+       3,    73,    38,    53,    53,    27,    24,     4,    68,   131,
+     122,   122,   122,   122,   122,   122,    72,   122,    95,    72,
+       3,     6,     7,    10,    11,    12,    13,    18,    19,    23,
+      25,    26,    28,    30,    36,    38,    40,    43,    45,    47,
+      52,    53,    57,    58,    59,    67,   123,   124,   122,   122,
+     122,   122,   130,    50,    57,   122,   122,   122,   122,   122,
+      30,    89,    90,   133,   122,   122,   122,   122,    18,    12,
+      72,    28,    38,    71,    71,    71,    71,    71,    38,    42,
+      71,    71,    46,    71,    71,    43,    28,    43,    71,    71,
+      71,    71,    28,    28,    71,    35,    41,    77,    78,    72,
+     122,   122,   122,    74,    89,   122,    71,    71,    71,   125,
+     130,   126,   132,     5,   125,   126,   125,    71,    41,   126,
+      22,    37,    39,    41,    60,    66,   127,   128,   129,    35,
+     125,    51,   126,    71,    71,    71,     5,   125,   125,   125,
+     125,    71,    71,   125,    71,    71,    72,   123,    41,    87,
+      88,   132,   125,   125,   125,    71,    71,   125,   125,   125,
+     125,   125,   126,   125,    17,    56,    41,    88,    41,    87,
+      72,   125,   126,    73,    73,    84,    84,    74,    74
 };
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
@@ -1467,7 +1471,7 @@
   switch (yyn)
     {
         case 2:
-#line 245 "parser.y"
+#line 247 "parser.y"
     {
 						parser_script = (SlonikScript *)
 								malloc(sizeof(SlonikScript));
@@ -1481,24 +1485,24 @@
     break;
 
   case 3:
-#line 258 "parser.y"
+#line 260 "parser.y"
     {
 						yyval.str = yyvsp[-1].str;
 					}
     break;
 
   case 4:
-#line 264 "parser.y"
+#line 266 "parser.y"
     { yyval.adm_info = yyvsp[0].adm_info; }
     break;
 
   case 5:
-#line 266 "parser.y"
+#line 268 "parser.y"
     { yyvsp[-1].adm_info->next = yyvsp[0].adm_info; yyval.adm_info = yyvsp[-1].adm_info; }
     break;
 
   case 6:
-#line 270 "parser.y"
+#line 272 "parser.y"
     {
 						SlonikAdmInfo	   *new;
 
@@ -1517,27 +1521,27 @@
     break;
 
   case 7:
-#line 288 "parser.y"
+#line 290 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 8:
-#line 290 "parser.y"
+#line 292 "parser.y"
     { yyvsp[-1].statement->next = yyvsp[0].statement; yyval.statement = yyvsp[-1].statement; }
     break;
 
   case 9:
-#line 294 "parser.y"
+#line 296 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 10:
-#line 296 "parser.y"
+#line 298 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 11:
-#line 301 "parser.y"
+#line 303 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -1556,7 +1560,7 @@
     break;
 
   case 12:
-#line 318 "parser.y"
+#line 320 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -1576,7 +1580,7 @@
     break;
 
   case 13:
-#line 336 "parser.y"
+#line 338 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -1596,7 +1600,7 @@
     break;
 
   case 14:
-#line 354 "parser.y"
+#line 356 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -1615,7 +1619,7 @@
     break;
 
   case 15:
-#line 370 "parser.y"
+#line 372 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -1633,177 +1637,177 @@
     break;
 
   case 16:
-#line 387 "parser.y"
+#line 389 "parser.y"
     { yyval.statement = yyvsp[-1].statement; }
     break;
 
   case 17:
-#line 390 "parser.y"
+#line 392 "parser.y"
     { yyval.statement = yyvsp[-1].statement; }
     break;
 
   case 18:
-#line 394 "parser.y"
+#line 396 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 19:
-#line 396 "parser.y"
+#line 398 "parser.y"
     { yyvsp[-1].statement->next = yyvsp[0].statement; yyval.statement = yyvsp[-1].statement; }
     break;
 
   case 20:
-#line 400 "parser.y"
+#line 402 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 21:
-#line 402 "parser.y"
+#line 404 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 22:
-#line 404 "parser.y"
+#line 406 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 23:
-#line 406 "parser.y"
+#line 408 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 24:
-#line 408 "parser.y"
+#line 410 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 25:
-#line 410 "parser.y"
+#line 412 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 26:
-#line 412 "parser.y"
+#line 414 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 27:
-#line 414 "parser.y"
+#line 416 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 28:
-#line 416 "parser.y"
+#line 418 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 29:
-#line 418 "parser.y"
+#line 420 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 30:
-#line 420 "parser.y"
+#line 422 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 31:
-#line 422 "parser.y"
+#line 424 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 32:
-#line 424 "parser.y"
+#line 426 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 33:
-#line 426 "parser.y"
+#line 428 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 34:
-#line 428 "parser.y"
+#line 430 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 35:
-#line 430 "parser.y"
+#line 432 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 36:
-#line 432 "parser.y"
+#line 434 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 37:
-#line 434 "parser.y"
+#line 436 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 38:
-#line 436 "parser.y"
+#line 438 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 39:
-#line 438 "parser.y"
+#line 440 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 40:
-#line 440 "parser.y"
+#line 442 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 41:
-#line 442 "parser.y"
+#line 444 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 42:
-#line 444 "parser.y"
+#line 446 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 43:
-#line 446 "parser.y"
+#line 448 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 44:
-#line 448 "parser.y"
+#line 450 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 45:
-#line 450 "parser.y"
+#line 452 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 46:
-#line 452 "parser.y"
+#line 454 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 47:
-#line 454 "parser.y"
+#line 456 "parser.y"
     { yyval.statement = yyvsp[0].statement; }
     break;
 
   case 48:
-#line 455 "parser.y"
+#line 457 "parser.y"
     { yyerrok; }
     break;
 
   case 49:
-#line 456 "parser.y"
+#line 458 "parser.y"
     { yyval.statement = yyvsp[-2].statement; }
     break;
 
   case 50:
-#line 460 "parser.y"
+#line 462 "parser.y"
     {
 						SlonikStmt_echo *new;
 
@@ -1821,7 +1825,7 @@
     break;
 
   case 51:
-#line 477 "parser.y"
+#line 479 "parser.y"
     {
 						SlonikStmt_exit *new;
 
@@ -1839,7 +1843,7 @@
     break;
 
   case 52:
-#line 494 "parser.y"
+#line 496 "parser.y"
     {
 						SlonikStmt_restart_node *new;
 
@@ -1857,17 +1861,17 @@
     break;
 
   case 53:
-#line 511 "parser.y"
+#line 513 "parser.y"
     { yyval.ival = strtol(yytext, NULL, 10); }
     break;
 
   case 54:
-#line 513 "parser.y"
+#line 515 "parser.y"
     { yyval.ival = -yyvsp[0].ival; }
     break;
 
   case 55:
-#line 517 "parser.y"
+#line 519 "parser.y"
     {
 						SlonikStmt *new;
 
@@ -1883,7 +1887,7 @@
     break;
 
   case 56:
-#line 532 "parser.y"
+#line 534 "parser.y"
     {
 						SlonikStmt_init_cluster *new;
 						statement_option opt[] = {
@@ -1912,7 +1916,7 @@
     break;
 
   case 57:
-#line 560 "parser.y"
+#line 562 "parser.y"
     {
 						SlonikStmt_store_node *new;
 						statement_option opt[] = {
@@ -1943,7 +1947,7 @@
     break;
 
   case 58:
-#line 590 "parser.y"
+#line 592 "parser.y"
     {
 						SlonikStmt_drop_node *new;
 						statement_option opt[] = {
@@ -1972,7 +1976,7 @@
     break;
 
   case 59:
-#line 618 "parser.y"
+#line 620 "parser.y"
     {
 						SlonikStmt_failed_node *new;
 						statement_option opt[] = {
@@ -2001,7 +2005,7 @@
     break;
 
   case 60:
-#line 646 "parser.y"
+#line 648 "parser.y"
     {
 						SlonikStmt_uninstall_node *new;
 						statement_option opt[] = {
@@ -2028,7 +2032,7 @@
     break;
 
   case 61:
-#line 672 "parser.y"
+#line 674 "parser.y"
     {
 						SlonikStmt_store_path *new;
 						statement_option opt[] = {
@@ -2061,7 +2065,7 @@
     break;
 
   case 62:
-#line 704 "parser.y"
+#line 706 "parser.y"
     {
 						SlonikStmt_drop_path *new;
 						statement_option opt[] = {
@@ -2092,7 +2096,7 @@
     break;
 
   case 63:
-#line 734 "parser.y"
+#line 736 "parser.y"
     {
 						SlonikStmt_store_listen *new;
 						statement_option opt[] = {
@@ -2123,7 +2127,7 @@
     break;
 
   case 64:
-#line 764 "parser.y"
+#line 766 "parser.y"
     {
 						SlonikStmt_drop_listen *new;
 						statement_option opt[] = {
@@ -2154,7 +2158,7 @@
     break;
 
   case 65:
-#line 794 "parser.y"
+#line 796 "parser.y"
     {
 						SlonikStmt_create_set *new;
 						statement_option opt[] = {
@@ -2185,7 +2189,7 @@
     break;
 
   case 66:
-#line 824 "parser.y"
+#line 826 "parser.y"
     {
 						SlonikStmt_drop_set *new;
 						statement_option opt[] = {
@@ -2214,7 +2218,7 @@
     break;
 
   case 67:
-#line 852 "parser.y"
+#line 854 "parser.y"
     {
 						SlonikStmt_merge_set *new;
 						statement_option opt[] = {
@@ -2245,7 +2249,7 @@
     break;
 
   case 68:
-#line 882 "parser.y"
+#line 884 "parser.y"
     {
 						SlonikStmt_table_add_key *new;
 						statement_option opt[] = {
@@ -2274,7 +2278,7 @@
     break;
 
   case 69:
-#line 910 "parser.y"
+#line 912 "parser.y"
     {
 						SlonikStmt_set_add_table *new;
 						statement_option opt[] = {
@@ -2313,7 +2317,7 @@
     break;
 
   case 70:
-#line 948 "parser.y"
+#line 950 "parser.y"
     {
 						SlonikStmt_set_add_sequence *new;
 						statement_option opt[] = {
@@ -2348,7 +2352,7 @@
     break;
 
   case 71:
-#line 982 "parser.y"
+#line 984 "parser.y"
     {
 						SlonikStmt_store_trigger *new;
 						statement_option opt[] = {
@@ -2379,7 +2383,7 @@
     break;
 
   case 72:
-#line 1012 "parser.y"
+#line 1014 "parser.y"
     {
 						SlonikStmt_drop_trigger *new;
 						statement_option opt[] = {
@@ -2410,7 +2414,7 @@
     break;
 
   case 73:
-#line 1042 "parser.y"
+#line 1044 "parser.y"
     {
 						SlonikStmt_subscribe_set *new;
 						statement_option opt[] = {
@@ -2443,7 +2447,7 @@
     break;
 
   case 74:
-#line 1074 "parser.y"
+#line 1076 "parser.y"
     {
 						SlonikStmt_unsubscribe_set *new;
 						statement_option opt[] = {
@@ -2472,7 +2476,7 @@
     break;
 
   case 75:
-#line 1102 "parser.y"
+#line 1104 "parser.y"
     {
 						SlonikStmt_lock_set *new;
 						statement_option opt[] = {
@@ -2501,7 +2505,7 @@
     break;
 
   case 76:
-#line 1130 "parser.y"
+#line 1132 "parser.y"
     {
 						SlonikStmt_unlock_set *new;
 						statement_option opt[] = {
@@ -2530,7 +2534,7 @@
     break;
 
   case 77:
-#line 1158 "parser.y"
+#line 1160 "parser.y"
     {
 						SlonikStmt_move_set *new;
 						statement_option opt[] = {
@@ -2561,13 +2565,14 @@
     break;
 
   case 78:
-#line 1188 "parser.y"
+#line 1190 "parser.y"
     {
 						SlonikStmt_ddl_script *new;
 						statement_option opt[] = {
 							STMT_OPTION_INT( O_SET_ID, -1 ),
 							STMT_OPTION_STR( O_FILENAME, NULL ),
 							STMT_OPTION_INT( O_EVENT_NODE, 1 ),
+							STMT_OPTION_INT( O_EXECUTE_ONLY_ON, -1 ),
 							STMT_OPTION_END
 						};
 
@@ -2583,6 +2588,7 @@
 							new->ddl_setid		= opt[0].ival;
 							new->ddl_fname		= opt[1].str;
 							new->ev_origin		= opt[2].ival;
+							new->only_on_node	= opt[3].ival;
 							new->ddl_fd			= -1;
 						}
 						else
@@ -2593,7 +2599,7 @@
     break;
 
   case 79:
-#line 1219 "parser.y"
+#line 1223 "parser.y"
     {
 						SlonikStmt_update_functions *new;
 						statement_option opt[] = {
@@ -2620,7 +2626,7 @@
     break;
 
   case 80:
-#line 1245 "parser.y"
+#line 1249 "parser.y"
     {
 						SlonikStmt_wait_event *new;
 						statement_option opt[] = {
@@ -2653,27 +2659,27 @@
     break;
 
   case 81:
-#line 1277 "parser.y"
+#line 1281 "parser.y"
     { yyval.opt_list = NULL; }
     break;
 
   case 82:
-#line 1279 "parser.y"
+#line 1283 "parser.y"
     { yyval.opt_list = yyvsp[-2].opt_list; }
     break;
 
   case 83:
-#line 1283 "parser.y"
+#line 1287 "parser.y"
     { yyval.opt_list = yyvsp[0].opt_list; }
     break;
 
   case 84:
-#line 1285 "parser.y"
+#line 1289 "parser.y"
     { yyvsp[-2].opt_list->next = yyvsp[0].opt_list; yyval.opt_list = yyvsp[-2].opt_list; }
     break;
 
   case 85:
-#line 1289 "parser.y"
+#line 1293 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2681,7 +2687,7 @@
     break;
 
   case 86:
-#line 1294 "parser.y"
+#line 1298 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_BACKUP_NODE;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2689,7 +2695,7 @@
     break;
 
   case 87:
-#line 1299 "parser.y"
+#line 1303 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_EVENT_NODE;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2697,7 +2703,7 @@
     break;
 
   case 88:
-#line 1304 "parser.y"
+#line 1308 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_SERVER;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2705,7 +2711,7 @@
     break;
 
   case 89:
-#line 1309 "parser.y"
+#line 1313 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_CLIENT;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2713,7 +2719,7 @@
     break;
 
   case 90:
-#line 1314 "parser.y"
+#line 1318 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_ORIGIN;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2721,7 +2727,7 @@
     break;
 
   case 91:
-#line 1319 "parser.y"
+#line 1323 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_OLD_ORIGIN;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2729,7 +2735,7 @@
     break;
 
   case 92:
-#line 1324 "parser.y"
+#line 1328 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_NEW_ORIGIN;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2737,7 +2743,7 @@
     break;
 
   case 93:
-#line 1329 "parser.y"
+#line 1333 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_RECEIVER;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2745,7 +2751,7 @@
     break;
 
   case 94:
-#line 1334 "parser.y"
+#line 1338 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_PROVIDER;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2753,7 +2759,7 @@
     break;
 
   case 95:
-#line 1339 "parser.y"
+#line 1343 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_CONNRETRY;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2761,7 +2767,7 @@
     break;
 
   case 96:
-#line 1344 "parser.y"
+#line 1348 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_COMMENT;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2769,7 +2775,7 @@
     break;
 
   case 97:
-#line 1349 "parser.y"
+#line 1353 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_CONNINFO;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2777,7 +2783,7 @@
     break;
 
   case 98:
-#line 1354 "parser.y"
+#line 1358 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_SET_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2785,7 +2791,7 @@
     break;
 
   case 99:
-#line 1359 "parser.y"
+#line 1363 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_ADD_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2793,7 +2799,7 @@
     break;
 
   case 100:
-#line 1364 "parser.y"
+#line 1368 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_NODE_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2801,7 +2807,7 @@
     break;
 
   case 101:
-#line 1369 "parser.y"
+#line 1373 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_TAB_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2809,7 +2815,7 @@
     break;
 
   case 102:
-#line 1374 "parser.y"
+#line 1378 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_TRIG_NAME;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2817,7 +2823,7 @@
     break;
 
   case 103:
-#line 1379 "parser.y"
+#line 1383 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_FQNAME;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2825,7 +2831,7 @@
     break;
 
   case 104:
-#line 1384 "parser.y"
+#line 1388 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_USE_KEY;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2833,7 +2839,7 @@
     break;
 
   case 105:
-#line 1389 "parser.y"
+#line 1393 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2849,7 +2855,7 @@
     break;
 
   case 106:
-#line 1402 "parser.y"
+#line 1406 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_FORWARD;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2857,7 +2863,7 @@
     break;
 
   case 107:
-#line 1407 "parser.y"
+#line 1411 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_FILENAME;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2865,7 +2871,7 @@
     break;
 
   case 108:
-#line 1412 "parser.y"
+#line 1416 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2881,7 +2887,7 @@
     break;
 
   case 109:
-#line 1425 "parser.y"
+#line 1429 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_WAIT_CONFIRMED;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2889,7 +2895,7 @@
     break;
 
   case 110:
-#line 1430 "parser.y"
+#line 1434 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2905,7 +2911,7 @@
     break;
 
   case 111:
-#line 1443 "parser.y"
+#line 1447 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_WAIT_ON;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2913,7 +2919,7 @@
     break;
 
   case 112:
-#line 1448 "parser.y"
+#line 1452 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_TIMEOUT;
 						yyval.opt_list = yyvsp[0].opt_list;
@@ -2921,7 +2927,15 @@
     break;
 
   case 113:
-#line 1455 "parser.y"
+#line 1457 "parser.y"
+    {
+						yyvsp[0].opt_list->opt_code	= O_EXECUTE_ONLY_ON;
+						yyval.opt_list = yyvsp[0].opt_list;
+					}
+    break;
+
+  case 114:
+#line 1464 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2935,8 +2949,8 @@
 					}
     break;
 
-  case 114:
-#line 1469 "parser.y"
+  case 115:
+#line 1478 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2950,8 +2964,8 @@
 					}
     break;
 
-  case 115:
-#line 1483 "parser.y"
+  case 116:
+#line 1492 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2965,8 +2979,8 @@
 					}
     break;
 
-  case 116:
-#line 1495 "parser.y"
+  case 117:
+#line 1504 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2980,15 +2994,15 @@
 					}
     break;
 
-  case 123:
-#line 1519 "parser.y"
+  case 124:
+#line 1528 "parser.y"
     {
 						yyval.ival = strtol(yytext, NULL, 10);
 					}
     break;
 
-  case 124:
-#line 1525 "parser.y"
+  case 125:
+#line 1534 "parser.y"
     {
 						char   *ret;
 
@@ -3000,8 +3014,8 @@
 					}
     break;
 
-  case 125:
-#line 1537 "parser.y"
+  case 126:
+#line 1546 "parser.y"
     {
 						char   *ret;
 
@@ -3013,8 +3027,8 @@
 					}
     break;
 
-  case 126:
-#line 1549 "parser.y"
+  case 127:
+#line 1558 "parser.y"
     { yyval.ival = yylineno; }
     break;
 
@@ -3022,7 +3036,7 @@
     }
 
 /* Line 991 of yacc.c.  */
-#line 3025 "y.tab.c"
+#line 3039 "y.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3231,7 +3245,7 @@
 }
 
 
-#line 1552 "parser.y"
+#line 1561 "parser.y"
 
 
 
@@ -3253,6 +3267,7 @@
 		case O_CONNINFO:		return "conninfo";
 		case O_CONNRETRY:		return "connretry";
 		case O_EVENT_NODE:		return "event node";
+		case O_EXECUTE_ONLY_ON:	return "execute only on";
 		case O_FILENAME:		return "filename";
 		case O_FORWARD:			return "forward";
 		case O_FQNAME:			return "full qualified name";
@@ -3342,4 +3357,3 @@
 
 
 
-


More information about the Slony1-commit mailing list