Tue Sep 7 18:11:16 PDT 2004
- Previous message: [Slony1-commit] By darcyb: Some compilers are braindead about including utils/elog (read
- Next message: [Slony1-commit] By cbbrowne: Add the case of trying to add a table to a subscribed set.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 = <ival></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 @@
-
- Previous message: [Slony1-commit] By darcyb: Some compilers are braindead about including utils/elog (read
- Next message: [Slony1-commit] By cbbrowne: Add the case of trying to add a table to a subscribed set.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list