CVS User Account cvsuser
Wed Sep 29 15:35:15 PDT 2004
Log Message:
-----------
Use TRUNCATE before subscription COPY on Postgres 7.4 and newer.

Jan

Tags:
----
REL_1_0_STABLE

Modified Files:
--------------
    slony1-engine/src/backend:
        slony1_funcs.v73.sql (r1.4 -> r1.4.2.1)
        slony1_funcs.v74.sql (r1.2 -> r1.2.2.1)
    slony1-engine/src/slon:
        remote_worker.c (r1.55.2.4 -> r1.55.2.5)
    slony1-engine/src/slonik:
        parser.c (r1.16 -> r1.16.2.1)

-------------- next part --------------
Index: slony1_funcs.v74.sql
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/backend/slony1_funcs.v74.sql,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -Lsrc/backend/slony1_funcs.v74.sql -Lsrc/backend/slony1_funcs.v74.sql -u -w -r1.2 -r1.2.2.1
--- src/backend/slony1_funcs.v74.sql
+++ src/backend/slony1_funcs.v74.sql
@@ -9,4 +9,20 @@
 -- $Id$
 -- ----------------------------------------------------------------------
 
+-- ----------------------------------------------------------------------
+-- FUNCTION truncateTable(tab_fqname)
+--
+--	Remove all content from a table before the subscription
+--	content is loaded via COPY.
+-- ----------------------------------------------------------------------
+create or replace function @NAMESPACE at .truncateTable(text)
+returns int4
+as '
+declare
+	p_tab_fqname		alias for $1;
+begin
+	execute ''truncate '' || p_tab_fqname;
+	return 1;
+end;
+' language plpgsql;
 
Index: slony1_funcs.v73.sql
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/backend/slony1_funcs.v73.sql,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -Lsrc/backend/slony1_funcs.v73.sql -Lsrc/backend/slony1_funcs.v73.sql -u -w -r1.4 -r1.4.2.1
--- src/backend/slony1_funcs.v73.sql
+++ src/backend/slony1_funcs.v73.sql
@@ -9,4 +9,20 @@
 -- $Id$
 -- ----------------------------------------------------------------------
 
+-- ----------------------------------------------------------------------
+-- FUNCTION truncateTable(tab_fqname)
+--
+--	Remove all content from a table before the subscription
+--	content is loaded via COPY.
+-- ----------------------------------------------------------------------
+create or replace function @NAMESPACE at .truncateTable(text)
+returns int4
+as '
+declare
+	p_tab_fqname		alias for $1;
+begin
+	execute ''delete from only '' || p_tab_fqname;
+	return 1;
+end;
+' language plpgsql;
 
Index: remote_worker.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slon/remote_worker.c,v
retrieving revision 1.55.2.4
retrieving revision 1.55.2.5
diff -Lsrc/slon/remote_worker.c -Lsrc/slon/remote_worker.c -u -w -r1.55.2.4 -r1.55.2.5
--- src/slon/remote_worker.c
+++ src/slon/remote_worker.c
@@ -2174,12 +2174,12 @@
 
 		/*
 		 * Begin a COPY from stdin for the table on the local DB
-		 * TODO: use the transaction safe truncate table on 7.4 or better
-		 *       instead of delete.
 		 */
 		slon_mkquery(&query1,
-				"delete from %s; "
-				"copy %s from stdin; ", tab_fqname, tab_fqname);
+				"select %s.truncateTable('%s'); "
+				"copy %s from stdin; ",
+				rtcfg_namespace,
+				tab_fqname, tab_fqname);
 		res2 = PQexec(loc_dbconn, dstring_data(&query1));
 		if (PQresultStatus(res2) != PGRES_COPY_IN)
 		{
Index: parser.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slonik/Attic/parser.c,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -Lsrc/slonik/parser.c -Lsrc/slonik/parser.c -u -w -r1.16 -r1.16.2.1
--- src/slonik/parser.c
+++ src/slonik/parser.c
@@ -426,16 +426,16 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   290
+#define YYLAST   289
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  78
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  55
+#define YYNNTS  54
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  126
+#define YYNRULES  125
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  274
+#define YYNSTATES  273
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -491,67 +491,67 @@
       35,    37,    44,    52,    60,    67,    73,    79,    85,    87,
       90,    92,    94,    96,    98,   100,   102,   104,   106,   108,
      110,   112,   114,   116,   118,   120,   122,   124,   126,   128,
-     130,   132,   134,   136,   138,   140,   142,   144,   146,   147,
-     151,   156,   161,   167,   169,   172,   175,   180,   185,   190,
-     194,   199,   204,   209,   214,   219,   224,   229,   234,   240,
-     246,   252,   257,   262,   267,   272,   277,   282,   287,   292,
-     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
+     130,   132,   134,   136,   138,   140,   142,   144,   146,   149,
+     154,   159,   165,   167,   170,   173,   178,   183,   188,   192,
+     197,   202,   207,   212,   217,   222,   227,   232,   238,   244,
+     250,   255,   260,   265,   270,   275,   280,   285,   290,   295,
+     301,   303,   308,   310,   314,   318,   323,   328,   332,   336,
+     340,   345,   350,   354,   358,   362,   366,   370,   375,   380,
+     385,   390,   395,   401,   405,   409,   413,   417,   421,   425,
+     429,   434,   438,   440,   442,   444,   446,   448,   450,   452,
+     454,   456,   458,   460,   462,   464
 };
 
 /* 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,
+      79,     0,    -1,    80,    81,    83,    -1,   131,     8,    35,
+      70,   129,    71,    -1,    82,    -1,    82,    81,    -1,   131,
+      38,   128,     4,    12,    70,   130,    71,    -1,    84,    -1,
+      84,    83,    -1,    85,    -1,    89,    -1,   131,    60,    72,
+      88,    73,    86,    -1,   131,    60,    72,    88,    73,    87,
+      86,    -1,   131,    60,    72,    88,    73,    86,    87,    -1,
+     131,    60,    72,    88,    73,    87,    -1,   131,    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
+      90,    -1,    91,    -1,    92,    -1,    95,    -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,    94,    71,    -1,   131,
+      16,   130,    71,    -1,   131,    20,    93,    71,    -1,   131,
+      47,    38,   128,    71,    -1,    69,    -1,    74,    93,    -1,
+     131,     1,    -1,   131,    29,     8,   120,    -1,   131,    53,
+      38,   120,    -1,   131,    15,    38,   120,    -1,   131,    21,
+     120,    -1,   131,    61,    38,   120,    -1,   131,    53,    43,
+     120,    -1,   131,    15,    43,   120,    -1,   131,    53,    31,
+     120,    -1,   131,    15,    31,   120,    -1,   131,    14,    52,
+     120,    -1,   131,    15,    52,   120,    -1,   131,    33,    52,
+     120,    -1,   131,    56,     3,    30,   120,    -1,   131,    52,
+       3,    56,   120,    -1,   131,    52,     3,    49,   120,    -1,
+     131,    53,    58,   120,    -1,   131,    15,    58,   120,    -1,
+     131,    54,    52,   120,    -1,   131,    63,    52,   120,    -1,
+     131,    32,    52,   120,    -1,   131,    62,    52,   120,    -1,
+     131,    34,    52,   120,    -1,   131,    19,    48,   120,    -1,
+     131,    64,    27,   120,    -1,   131,    66,    24,    18,   120,
+      -1,    71,    -1,    75,   121,    76,    71,    -1,   122,    -1,
+     122,    77,   121,    -1,    28,    70,   123,    -1,     6,    38,
+      70,   123,    -1,    18,    38,    70,   123,    -1,    51,    70,
+     123,    -1,     7,    70,   123,    -1,    42,    70,   123,    -1,
+      40,    42,    70,   123,    -1,    36,    42,    70,   123,    -1,
+      46,    70,   123,    -1,    44,    70,   123,    -1,    13,    70,
+     123,    -1,    10,    70,   124,    -1,    12,    70,   124,    -1,
+      52,    28,    70,   123,    -1,     3,    28,    70,   123,    -1,
+      38,    28,    70,   123,    -1,    56,    28,    70,   123,    -1,
+      58,    35,    70,   124,    -1,    26,    45,    35,    70,   124,
+      -1,    30,    70,   124,    -1,    30,    70,    50,    -1,    25,
+      70,   125,    -1,    23,    70,   124,    -1,    42,    70,     5,
+      -1,    11,    70,   123,    -1,    11,    70,     5,    -1,    66,
+      41,    70,   123,    -1,    57,    70,   123,    -1,   128,    -1,
+     130,    -1,   126,    -1,   127,    -1,    65,    -1,    41,    -1,
+      59,    -1,    37,    -1,    39,    -1,    22,    -1,    69,    -1,
+      67,    -1,    68,    -1,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -561,15 +561,15 @@
      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
+     439,   441,   443,   445,   447,   449,   451,   453,   455,   460,
+     477,   494,   511,   513,   517,   532,   560,   590,   618,   646,
+     672,   704,   734,   764,   794,   824,   852,   882,   910,   948,
+     982,  1012,  1042,  1074,  1102,  1130,  1158,  1188,  1219,  1245,
+    1277,  1279,  1283,  1285,  1289,  1294,  1299,  1304,  1309,  1314,
+    1319,  1324,  1329,  1334,  1339,  1344,  1349,  1354,  1359,  1364,
+    1369,  1374,  1379,  1384,  1389,  1402,  1407,  1412,  1425,  1430,
+    1443,  1448,  1455,  1469,  1483,  1495,  1509,  1510,  1511,  1514,
+    1515,  1516,  1519,  1525,  1537,  1550
 };
 #endif
 
@@ -593,19 +593,19 @@
   "'}'", "'-'", "'('", "')'", "','", "$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", 
-  "option_item_yn_no", "id", "ident", "literal", "lno", 0
+  "try_stmt", "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", "option_item_yn_no", "id", 
+  "ident", "literal", "lno", 0
 };
 #endif
 
@@ -632,15 +632,15 @@
       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,
+      89,    89,    89,    89,    89,    89,    89,    89,    89,    90,
+      91,    92,    93,    93,    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
+     120,   120,   121,   121,   122,   122,   122,   122,   122,   122,
+     122,   122,   122,   122,   122,   122,   122,   122,   122,   122,
+     122,   122,   122,   122,   122,   122,   122,   122,   122,   122,
+     122,   122,   123,   124,   125,   125,   126,   126,   126,   127,
+     127,   127,   128,   129,   130,   131
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -650,15 +650,15 @@
        1,     6,     7,     7,     6,     5,     5,     5,     1,     2,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     3,
-       4,     4,     5,     1,     2,     2,     4,     4,     4,     3,
-       4,     4,     4,     4,     4,     4,     4,     4,     5,     5,
-       5,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       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
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
+       4,     5,     1,     2,     2,     4,     4,     4,     3,     4,
+       4,     4,     4,     4,     4,     4,     4,     5,     5,     5,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     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
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -666,198 +666,196 @@
    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,
+     125,     0,   125,     0,     1,   125,     4,     0,     0,     2,
+     125,     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,
+      46,    47,     0,     5,     0,     0,     8,    48,    54,     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,
+     122,     0,     0,     0,     0,     0,     0,     0,     0,   124,
+       0,     0,    52,     0,     0,    80,     0,    58,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   126,     0,     0,     0,     0,     0,     0,   124,     0,
-      65,    64,    58,    62,    66,    72,    50,    78,    54,    51,
+     125,     0,     0,     0,     0,     0,     0,   123,     0,    64,
+      63,    57,    61,    65,    71,    49,    77,    53,    50,     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,     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,    82,    55,    74,    66,    76,
+       0,     0,     0,    62,    56,    60,    70,    72,     0,     0,
+     125,     0,    59,    75,    73,    78,     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,     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,    51,    69,    68,    67,
+      15,    19,    79,     0,     0,     0,    88,   112,    95,   113,
+     109,   108,    96,    94,     0,   106,   121,   119,   120,   117,
+     118,   116,   105,   114,   115,     0,    84,   104,   103,     0,
+       0,     0,   107,    89,    93,    92,    87,     0,     0,   111,
+       0,     0,    81,    83,     0,    11,    14,     0,    98,    85,
+      86,     0,    91,    99,    90,    97,   100,   101,   110,     0,
+       0,     0,    13,     0,    12,     6,   102,   125,   125,     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,
-      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
+      -1,     1,     2,     5,     6,     9,    10,    11,   245,   246,
+     159,    12,    13,    14,    15,    84,    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,    87,   144,   145,   206,   208,   222,   223,   224,
+     207,   108,   209,    42
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -162
+#define YYPACT_NINF -160
 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
+    -160,     8,  -160,    15,  -160,  -160,    -3,    -2,     7,  -160,
+       4,  -160,  -160,  -160,  -160,  -160,   -27,  -160,  -160,  -160,
+    -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,
+    -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,
+    -160,  -160,   103,  -160,   -20,   -19,  -160,  -160,  -160,     5,
+      33,   -16,    12,   -24,    -1,    54,    16,    23,    26,    41,
+      81,    69,    34,    87,    21,    57,    44,    51,    83,    84,
+    -160,   107,    46,    -1,    -1,    -1,    -1,    -1,    -1,  -160,
+      43,    -1,  -160,   -24,    45,  -160,   223,  -160,    -1,    -1,
+      -1,    -1,   -20,   -28,    -1,    -1,    -1,    -1,    -1,    85,
+    -160,    -1,    -1,    -1,    -1,   102,   109,  -160,    55,  -160,
+    -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,    97,
+      90,    59,    60,    61,    63,    64,   100,    70,    71,    94,
+      72,    73,   104,   116,   105,    75,    78,    79,    82,   123,
+     125,    92,   133,   119,    98,    93,  -160,  -160,  -160,  -160,
+     108,    -1,    -1,  -160,  -160,  -160,  -160,  -160,    -1,   110,
+     111,   157,  -160,  -160,  -160,  -160,    -1,   112,  -160,   115,
+     117,   -20,   -16,     0,   -16,   -20,   118,   -16,    24,   140,
+     -20,   -21,   122,   124,   126,    11,   -20,   -20,   -20,   127,
+     128,   -20,   129,   130,   131,   223,  -160,  -160,  -160,  -160,
+     139,  -160,  -160,   -16,   -20,   -20,  -160,  -160,  -160,  -160,
+    -160,  -160,  -160,  -160,   -20,  -160,  -160,  -160,  -160,  -160,
+    -160,  -160,  -160,  -160,  -160,   135,  -160,  -160,  -160,   -20,
+     -20,   -20,  -160,  -160,  -160,  -160,  -160,   -20,   -20,  -160,
+     -16,   -20,  -160,  -160,     3,   152,   154,   132,  -160,  -160,
+    -160,   -16,  -160,  -160,  -160,  -160,  -160,  -160,  -160,   134,
+     136,   146,  -160,   164,  -160,  -160,  -160,  -160,  -160,   141,
+     142,  -160,  -160
 };
 
 /* 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
+    -160,  -160,  -160,   201,  -160,   -10,  -160,  -160,   -34,   -29,
+      62,   -94,  -160,  -160,  -160,   144,  -160,  -160,  -160,  -160,
+    -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,
+    -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,
+    -160,  -160,   -64,    22,  -160,  -132,  -159,  -160,  -160,  -160,
+     -25,  -160,   -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 -126
 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,    80,     7,    -7,   210,   160,     7,     4,   109,
+     110,   111,   112,   113,   114,   212,   232,   116,   215,    71,
+     259,   151,   228,     8,   146,   147,   148,   149,   152,   227,
+     153,   154,   155,   156,   157,  -125,    44,   162,   163,   164,
+     165,   211,    45,   213,    47,    82,   216,    79,   226,    70,
+      83,    72,    79,   233,   234,   235,   236,    73,   260,   239,
+      81,   217,    88,   218,    74,   219,   160,   150,    89,    70,
+      85,    75,   248,   249,    86,    90,    76,    -7,    91,    92,
+      70,   257,   250,   220,    93,    77,    98,   197,   198,   221,
+      99,    78,   266,   100,   199,   101,   102,   252,   253,   254,
+      94,   161,   202,   103,    48,   255,   256,    95,   105,   258,
+     104,   106,    96,   107,   115,   158,   118,    49,    50,    51,
+     166,   167,    52,    53,    54,   169,   168,    97,   170,   171,
+     172,   173,    55,   174,   175,    56,    57,    58,   176,   179,
+     177,   178,   180,   181,   183,   185,   182,   184,   186,   187,
+      59,   189,   188,   190,   247,    60,    61,    62,    48,    63,
+     193,   161,   191,    64,    65,    66,    67,    68,   192,    69,
+     195,    49,    50,    51,   194,   225,    52,    53,    54,   196,
+     244,   259,   203,   200,   -18,   204,    55,   205,   214,    56,
+      57,    58,   229,   261,   230,   263,   231,   237,   238,   240,
+     241,   260,   242,   265,    59,   251,   267,    43,   268,    60,
+      61,    62,   264,    63,   271,   272,   262,   243,    65,    66,
+      67,    68,   201,    69,     0,     0,   119,   117,     0,   120,
+     121,     0,     0,   122,   123,   124,   125,     0,     0,     0,
+       0,   126,     0,     0,     0,     0,   127,     0,   128,   129,
+       0,   130,     0,   131,     0,     0,     0,   269,   270,   132,
+       0,   133,     0,   134,     0,   135,     0,   136,     0,   137,
+       0,     0,     0,     0,   138,   139,     0,     0,     0,   140,
+     141,   142,     0,     0,     0,     0,     0,     0,     0,   143
 };
 
 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,   100,     6,     0,    73,
+      74,    75,    76,    77,    78,   174,     5,    81,   177,    44,
+      17,    49,   181,     8,    88,    89,    90,    91,    56,    50,
+      94,    95,    96,    97,    98,    38,    38,   101,   102,   103,
+     104,   173,    35,   175,    71,    69,    22,    68,   180,    69,
+      74,    70,    68,   185,   186,   187,   188,    52,    55,   191,
+      48,    37,     8,    39,    31,    41,   160,    92,    52,    69,
+      71,    38,   204,   205,    75,    52,    43,    73,    52,    38,
+      69,   240,   214,    59,     3,    52,    52,   151,   152,    65,
+       3,    58,   251,    72,   158,    38,    52,   229,   230,   231,
+      31,   100,   166,    52,     1,   237,   238,    38,    24,   241,
+      27,     4,    43,    67,    71,    30,    71,    14,    15,    16,
+      18,    12,    19,    20,    21,    28,    71,    58,    38,    70,
+      70,    70,    29,    70,    70,    32,    33,    34,    38,    45,
+      70,    70,    70,    70,    28,    70,    42,    42,    70,    70,
+      47,    28,    70,    28,   203,    52,    53,    54,     1,    56,
+      41,   160,    70,    60,    61,    62,    63,    64,    35,    66,
+      77,    14,    15,    16,    76,    35,    19,    20,    21,    71,
+      41,    17,    70,    73,    73,    70,    29,    70,    70,    32,
+      33,    34,    70,    41,    70,    41,    70,    70,    70,    70,
+      70,    55,    71,    71,    47,    70,    72,     6,    72,    52,
+      53,    54,   246,    56,    73,    73,   245,   195,    61,    62,
+      63,    64,   160,    66,    -1,    -1,     3,    83,    -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,   267,   268,    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
 };
 
 /* 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,
+       0,    79,    80,   131,     0,    81,    82,   131,     8,    83,
+      84,    85,    89,    90,    91,    92,    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,   131,    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
+      69,   128,    70,    52,    31,    38,    43,    52,    58,    68,
+     130,    48,    69,    74,    93,    71,    75,   120,     8,    52,
+      52,    52,    38,     3,    31,    38,    43,    58,    52,     3,
+      72,    38,    52,    52,    27,    24,     4,    67,   129,   120,
+     120,   120,   120,   120,   120,    71,   120,    93,    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,   121,   122,   120,   120,   120,   120,
+     128,    49,    56,   120,   120,   120,   120,   120,    30,    88,
+      89,   131,   120,   120,   120,   120,    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,   120,   120,   120,
+      73,    88,   120,    70,    70,    70,   123,   128,   124,   130,
+       5,   123,   124,   123,    70,   124,    22,    37,    39,    41,
+      59,    65,   125,   126,   127,    35,   123,    50,   124,    70,
+      70,    70,     5,   123,   123,   123,   123,    70,    70,   123,
+      70,    70,    71,   121,    41,    86,    87,   130,   123,   123,
+     123,    70,   123,   123,   123,   123,   123,   124,   123,    17,
+      55,    41,    87,    41,    86,    71,   124,    72,    72,    83,
+      83,    73,    73
 };
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
@@ -1793,17 +1791,13 @@
     break;
 
   case 48:
-#line 455 "parser.y"
-    { yyerrok; }
-    break;
-
-  case 49:
 #line 456 "parser.y"
-    { yyval.statement = yyvsp[-2].statement; }
+    { yyerrok;
+						  yyval.statement = yyvsp[-1].statement; }
     break;
 
-  case 50:
-#line 460 "parser.y"
+  case 49:
+#line 461 "parser.y"
     {
 						SlonikStmt_echo *new;
 
@@ -1820,8 +1814,8 @@
 					}
     break;
 
-  case 51:
-#line 477 "parser.y"
+  case 50:
+#line 478 "parser.y"
     {
 						SlonikStmt_exit *new;
 
@@ -1838,8 +1832,8 @@
 					}
     break;
 
-  case 52:
-#line 494 "parser.y"
+  case 51:
+#line 495 "parser.y"
     {
 						SlonikStmt_restart_node *new;
 
@@ -1856,18 +1850,18 @@
 					}
     break;
 
-  case 53:
-#line 511 "parser.y"
+  case 52:
+#line 512 "parser.y"
     { yyval.ival = strtol(yytext, NULL, 10); }
     break;
 
-  case 54:
-#line 513 "parser.y"
+  case 53:
+#line 514 "parser.y"
     { yyval.ival = -yyvsp[0].ival; }
     break;
 
-  case 55:
-#line 517 "parser.y"
+  case 54:
+#line 518 "parser.y"
     {
 						SlonikStmt *new;
 
@@ -1882,8 +1876,8 @@
 					}
     break;
 
-  case 56:
-#line 532 "parser.y"
+  case 55:
+#line 533 "parser.y"
     {
 						SlonikStmt_init_cluster *new;
 						statement_option opt[] = {
@@ -1911,8 +1905,8 @@
 					}
     break;
 
-  case 57:
-#line 560 "parser.y"
+  case 56:
+#line 561 "parser.y"
     {
 						SlonikStmt_store_node *new;
 						statement_option opt[] = {
@@ -1942,8 +1936,8 @@
 					}
     break;
 
-  case 58:
-#line 590 "parser.y"
+  case 57:
+#line 591 "parser.y"
     {
 						SlonikStmt_drop_node *new;
 						statement_option opt[] = {
@@ -1971,8 +1965,8 @@
 					}
     break;
 
-  case 59:
-#line 618 "parser.y"
+  case 58:
+#line 619 "parser.y"
     {
 						SlonikStmt_failed_node *new;
 						statement_option opt[] = {
@@ -2000,8 +1994,8 @@
 					}
     break;
 
-  case 60:
-#line 646 "parser.y"
+  case 59:
+#line 647 "parser.y"
     {
 						SlonikStmt_uninstall_node *new;
 						statement_option opt[] = {
@@ -2027,8 +2021,8 @@
 					}
     break;
 
-  case 61:
-#line 672 "parser.y"
+  case 60:
+#line 673 "parser.y"
     {
 						SlonikStmt_store_path *new;
 						statement_option opt[] = {
@@ -2060,8 +2054,8 @@
 					}
     break;
 
-  case 62:
-#line 704 "parser.y"
+  case 61:
+#line 705 "parser.y"
     {
 						SlonikStmt_drop_path *new;
 						statement_option opt[] = {
@@ -2091,8 +2085,8 @@
 					}
     break;
 
-  case 63:
-#line 734 "parser.y"
+  case 62:
+#line 735 "parser.y"
     {
 						SlonikStmt_store_listen *new;
 						statement_option opt[] = {
@@ -2122,8 +2116,8 @@
 					}
     break;
 
-  case 64:
-#line 764 "parser.y"
+  case 63:
+#line 765 "parser.y"
     {
 						SlonikStmt_drop_listen *new;
 						statement_option opt[] = {
@@ -2153,8 +2147,8 @@
 					}
     break;
 
-  case 65:
-#line 794 "parser.y"
+  case 64:
+#line 795 "parser.y"
     {
 						SlonikStmt_create_set *new;
 						statement_option opt[] = {
@@ -2184,8 +2178,8 @@
 					}
     break;
 
-  case 66:
-#line 824 "parser.y"
+  case 65:
+#line 825 "parser.y"
     {
 						SlonikStmt_drop_set *new;
 						statement_option opt[] = {
@@ -2213,8 +2207,8 @@
 					}
     break;
 
-  case 67:
-#line 852 "parser.y"
+  case 66:
+#line 853 "parser.y"
     {
 						SlonikStmt_merge_set *new;
 						statement_option opt[] = {
@@ -2244,8 +2238,8 @@
 					}
     break;
 
-  case 68:
-#line 882 "parser.y"
+  case 67:
+#line 883 "parser.y"
     {
 						SlonikStmt_table_add_key *new;
 						statement_option opt[] = {
@@ -2273,8 +2267,8 @@
 					}
     break;
 
-  case 69:
-#line 910 "parser.y"
+  case 68:
+#line 911 "parser.y"
     {
 						SlonikStmt_set_add_table *new;
 						statement_option opt[] = {
@@ -2312,8 +2306,8 @@
 					}
     break;
 
-  case 70:
-#line 948 "parser.y"
+  case 69:
+#line 949 "parser.y"
     {
 						SlonikStmt_set_add_sequence *new;
 						statement_option opt[] = {
@@ -2347,8 +2341,8 @@
 					}
     break;
 
-  case 71:
-#line 982 "parser.y"
+  case 70:
+#line 983 "parser.y"
     {
 						SlonikStmt_store_trigger *new;
 						statement_option opt[] = {
@@ -2378,8 +2372,8 @@
 					}
     break;
 
-  case 72:
-#line 1012 "parser.y"
+  case 71:
+#line 1013 "parser.y"
     {
 						SlonikStmt_drop_trigger *new;
 						statement_option opt[] = {
@@ -2409,8 +2403,8 @@
 					}
     break;
 
-  case 73:
-#line 1042 "parser.y"
+  case 72:
+#line 1043 "parser.y"
     {
 						SlonikStmt_subscribe_set *new;
 						statement_option opt[] = {
@@ -2442,8 +2436,8 @@
 					}
     break;
 
-  case 74:
-#line 1074 "parser.y"
+  case 73:
+#line 1075 "parser.y"
     {
 						SlonikStmt_unsubscribe_set *new;
 						statement_option opt[] = {
@@ -2471,8 +2465,8 @@
 					}
     break;
 
-  case 75:
-#line 1102 "parser.y"
+  case 74:
+#line 1103 "parser.y"
     {
 						SlonikStmt_lock_set *new;
 						statement_option opt[] = {
@@ -2500,8 +2494,8 @@
 					}
     break;
 
-  case 76:
-#line 1130 "parser.y"
+  case 75:
+#line 1131 "parser.y"
     {
 						SlonikStmt_unlock_set *new;
 						statement_option opt[] = {
@@ -2529,8 +2523,8 @@
 					}
     break;
 
-  case 77:
-#line 1158 "parser.y"
+  case 76:
+#line 1159 "parser.y"
     {
 						SlonikStmt_move_set *new;
 						statement_option opt[] = {
@@ -2560,8 +2554,8 @@
 					}
     break;
 
-  case 78:
-#line 1188 "parser.y"
+  case 77:
+#line 1189 "parser.y"
     {
 						SlonikStmt_ddl_script *new;
 						statement_option opt[] = {
@@ -2592,8 +2586,8 @@
 					}
     break;
 
-  case 79:
-#line 1219 "parser.y"
+  case 78:
+#line 1220 "parser.y"
     {
 						SlonikStmt_update_functions *new;
 						statement_option opt[] = {
@@ -2619,8 +2613,8 @@
 					}
     break;
 
-  case 80:
-#line 1245 "parser.y"
+  case 79:
+#line 1246 "parser.y"
     {
 						SlonikStmt_wait_event *new;
 						statement_option opt[] = {
@@ -2652,188 +2646,188 @@
 					}
     break;
 
-  case 81:
-#line 1277 "parser.y"
+  case 80:
+#line 1278 "parser.y"
     { yyval.opt_list = NULL; }
     break;
 
-  case 82:
-#line 1279 "parser.y"
+  case 81:
+#line 1280 "parser.y"
     { yyval.opt_list = yyvsp[-2].opt_list; }
     break;
 
-  case 83:
-#line 1283 "parser.y"
+  case 82:
+#line 1284 "parser.y"
     { yyval.opt_list = yyvsp[0].opt_list; }
     break;
 
-  case 84:
-#line 1285 "parser.y"
+  case 83:
+#line 1286 "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"
+  case 84:
+#line 1290 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 86:
-#line 1294 "parser.y"
+  case 85:
+#line 1295 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_BACKUP_NODE;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 87:
-#line 1299 "parser.y"
+  case 86:
+#line 1300 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_EVENT_NODE;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 88:
-#line 1304 "parser.y"
+  case 87:
+#line 1305 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_SERVER;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 89:
-#line 1309 "parser.y"
+  case 88:
+#line 1310 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_CLIENT;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 90:
-#line 1314 "parser.y"
+  case 89:
+#line 1315 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_ORIGIN;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 91:
-#line 1319 "parser.y"
+  case 90:
+#line 1320 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_OLD_ORIGIN;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 92:
-#line 1324 "parser.y"
+  case 91:
+#line 1325 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_NEW_ORIGIN;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 93:
-#line 1329 "parser.y"
+  case 92:
+#line 1330 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_RECEIVER;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 94:
-#line 1334 "parser.y"
+  case 93:
+#line 1335 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_PROVIDER;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 95:
-#line 1339 "parser.y"
+  case 94:
+#line 1340 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_CONNRETRY;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 96:
-#line 1344 "parser.y"
+  case 95:
+#line 1345 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_COMMENT;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 97:
-#line 1349 "parser.y"
+  case 96:
+#line 1350 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_CONNINFO;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 98:
-#line 1354 "parser.y"
+  case 97:
+#line 1355 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_SET_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 99:
-#line 1359 "parser.y"
+  case 98:
+#line 1360 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_ADD_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 100:
-#line 1364 "parser.y"
+  case 99:
+#line 1365 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_NODE_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 101:
-#line 1369 "parser.y"
+  case 100:
+#line 1370 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_TAB_ID;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 102:
-#line 1374 "parser.y"
+  case 101:
+#line 1375 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_TRIG_NAME;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 103:
-#line 1379 "parser.y"
+  case 102:
+#line 1380 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_FQNAME;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 104:
-#line 1384 "parser.y"
+  case 103:
+#line 1385 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_USE_KEY;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 105:
-#line 1389 "parser.y"
+  case 104:
+#line 1390 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2848,24 +2842,24 @@
 					}
     break;
 
-  case 106:
-#line 1402 "parser.y"
+  case 105:
+#line 1403 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_FORWARD;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 107:
-#line 1407 "parser.y"
+  case 106:
+#line 1408 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_FILENAME;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 108:
-#line 1412 "parser.y"
+  case 107:
+#line 1413 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2880,16 +2874,16 @@
 					}
     break;
 
-  case 109:
-#line 1425 "parser.y"
+  case 108:
+#line 1426 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_WAIT_CONFIRMED;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 110:
-#line 1430 "parser.y"
+  case 109:
+#line 1431 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2904,24 +2898,24 @@
 					}
     break;
 
-  case 111:
-#line 1443 "parser.y"
+  case 110:
+#line 1444 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_WAIT_ON;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 112:
-#line 1448 "parser.y"
+  case 111:
+#line 1449 "parser.y"
     {
 						yyvsp[0].opt_list->opt_code	= O_TIMEOUT;
 						yyval.opt_list = yyvsp[0].opt_list;
 					}
     break;
 
-  case 113:
-#line 1455 "parser.y"
+  case 112:
+#line 1456 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2935,8 +2929,8 @@
 					}
     break;
 
-  case 114:
-#line 1469 "parser.y"
+  case 113:
+#line 1470 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2950,8 +2944,8 @@
 					}
     break;
 
-  case 115:
-#line 1483 "parser.y"
+  case 114:
+#line 1484 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2965,8 +2959,8 @@
 					}
     break;
 
-  case 116:
-#line 1495 "parser.y"
+  case 115:
+#line 1496 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -2980,15 +2974,15 @@
 					}
     break;
 
-  case 123:
-#line 1519 "parser.y"
+  case 122:
+#line 1520 "parser.y"
     {
 						yyval.ival = strtol(yytext, NULL, 10);
 					}
     break;
 
-  case 124:
-#line 1525 "parser.y"
+  case 123:
+#line 1526 "parser.y"
     {
 						char   *ret;
 
@@ -3000,8 +2994,8 @@
 					}
     break;
 
-  case 125:
-#line 1537 "parser.y"
+  case 124:
+#line 1538 "parser.y"
     {
 						char   *ret;
 
@@ -3013,8 +3007,8 @@
 					}
     break;
 
-  case 126:
-#line 1549 "parser.y"
+  case 125:
+#line 1550 "parser.y"
     { yyval.ival = yylineno; }
     break;
 
@@ -3022,7 +3016,7 @@
     }
 
 /* Line 991 of yacc.c.  */
-#line 3025 "y.tab.c"
+#line 3019 "y.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3231,7 +3225,7 @@
 }
 
 
-#line 1552 "parser.y"
+#line 1553 "parser.y"
 
 
 
@@ -3342,4 +3336,3 @@
 
 
 
-


More information about the Slony1-commit mailing list