diff --git a/parser/ParseStatement.hpp b/parser/ParseStatement.hpp
index cee7221..456bdc2 100644
--- a/parser/ParseStatement.hpp
+++ b/parser/ParseStatement.hpp
@@ -653,9 +653,9 @@
   ParseStatementInsertTuple(const int line_number,
                             const int column_number,
                             const ParseString *relation_name,
-                            PtrList<ParseScalarLiteral> *literal_values)
+                            PtrList<PtrList<ParseScalarLiteral>> *literal_values_list)
       : ParseStatementInsert(line_number, column_number, relation_name),
-        literal_values_(literal_values) {
+        literal_values_(literal_values_list) {
   }
 
   ~ParseStatementInsertTuple() override {
@@ -666,11 +666,11 @@
   }
 
   /**
-   * @brief Get the parsed literal attribute values to insert.
+   * @brief Get the list of list of parsed literal attribute values to insert.
    *
-   * @return The list of literal values to insert.
+   * @return The list of lists of literal values to insert.
    **/
-  const PtrList<ParseScalarLiteral>& getLiteralValues() const {
+  const PtrList<PtrList<ParseScalarLiteral>>& getLiteralValues() const {
     return *literal_values_;
   }
 
@@ -685,15 +685,17 @@
     inline_field_names->push_back("relation_name");
     inline_field_values->push_back(relation_name()->value());
 
-    container_child_field_names->push_back("tuple");
-    container_child_fields->emplace_back();
-    for (const ParseScalarLiteral& literal_value : *literal_values_) {
-      container_child_fields->back().push_back(&literal_value);
+    for (const PtrList<ParseScalarLiteral>& literal_values_single_tuple : *literal_values_) {
+      container_child_field_names->push_back("tuple");
+      container_child_fields->emplace_back();
+      for (const ParseScalarLiteral& literal_value : literal_values_single_tuple) {
+        container_child_fields->back().push_back(&literal_value);
+      }
     }
   }
 
  private:
-  std::unique_ptr<PtrList<ParseScalarLiteral> > literal_values_;
+  std::unique_ptr<PtrList<PtrList<ParseScalarLiteral>>> literal_values_;
 
   DISALLOW_COPY_AND_ASSIGN(ParseStatementInsertTuple);
 };
diff --git a/parser/SqlParser.ypp b/parser/SqlParser.ypp
index 8fbcdd7..ba69b3d 100644
--- a/parser/SqlParser.ypp
+++ b/parser/SqlParser.ypp
@@ -128,6 +128,7 @@
   quickstep::NumericParseLiteralValue *numeric_literal_value_;
   quickstep::ParseLiteralValue *literal_value_;
   quickstep::PtrList<quickstep::ParseScalarLiteral> *literal_value_list_;
+  quickstep::PtrList<quickstep::PtrList<quickstep::ParseScalarLiteral>> *literal_value_list_multiple_;
 
   quickstep::ParseExpression *expression_;
 
@@ -387,6 +388,9 @@
 %type <literal_value_list_>
   literal_value_commalist
 
+%type <literal_value_list_multiple_>
+  literal_value_commalist_multiple
+
 %type <expression_>
   expression_base
   unary_expression
@@ -1101,8 +1105,8 @@
     NotSupported(&@4, yyscanner, "list of column names in INSERT statement");
     YYERROR;
   }
-  | TOKEN_INSERT TOKEN_INTO any_name TOKEN_VALUES '(' literal_value_commalist ')' {
-    $$ = new quickstep::ParseStatementInsertTuple(@1.first_line, @1.first_column, $3, $6);
+  | TOKEN_INSERT TOKEN_INTO any_name TOKEN_VALUES literal_value_commalist_multiple {
+    $$ = new quickstep::ParseStatementInsertTuple(@1.first_line, @1.first_column, $3, $5);
   }
   | TOKEN_INSERT TOKEN_INTO any_name select_query {
     $$ = new quickstep::ParseStatementInsertSelection(@1.first_line, @2.first_column, $3, $4, nullptr);
@@ -1921,6 +1925,16 @@
     $$->push_back(new quickstep::ParseScalarLiteral($3));
   };
 
+literal_value_commalist_multiple:
+  '(' literal_value_commalist ')' {
+    $$ = new quickstep::PtrList<quickstep::PtrList<quickstep::ParseScalarLiteral>>();
+    $$->push_back($2);
+  }
+  | literal_value_commalist_multiple ',' '(' literal_value_commalist ')' {
+    $$ = $1;
+    $$->push_back($4);
+  };
+
 attribute_ref:
   any_name {
     $$ = new quickstep::ParseAttribute(@1.first_line, @1.first_column, $1);
diff --git a/parser/preprocessed/SqlParser_gen.cpp b/parser/preprocessed/SqlParser_gen.cpp
index 72c61dd..9b77875 100644
--- a/parser/preprocessed/SqlParser_gen.cpp
+++ b/parser/preprocessed/SqlParser_gen.cpp
@@ -341,6 +341,7 @@
   quickstep::NumericParseLiteralValue *numeric_literal_value_;
   quickstep::ParseLiteralValue *literal_value_;
   quickstep::PtrList<quickstep::ParseScalarLiteral> *literal_value_list_;
+  quickstep::PtrList<quickstep::PtrList<quickstep::ParseScalarLiteral>> *literal_value_list_multiple_;
 
   quickstep::ParseExpression *expression_;
 
@@ -431,7 +432,7 @@
 
   quickstep::ParsePriority *opt_priority_clause_;
 
-#line 435 "SqlParser_gen.cpp" /* yacc.c:355  */
+#line 436 "SqlParser_gen.cpp" /* yacc.c:355  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -460,13 +461,13 @@
 #endif /* !YY_QUICKSTEP_YY_SQLPARSER_GEN_HPP_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
-#line 222 "../SqlParser.ypp" /* yacc.c:358  */
+#line 223 "../SqlParser.ypp" /* yacc.c:358  */
 
 /* This header needs YYSTYPE, which is defined by the %union directive above */
 #include "SqlLexer_gen.hpp"
 void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string &feature);
 
-#line 470 "SqlParser_gen.cpp" /* yacc.c:358  */
+#line 471 "SqlParser_gen.cpp" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -710,16 +711,16 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  50
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1391
+#define YYLAST   1327
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  148
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  110
+#define YYNNTS  111
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  298
+#define YYNRULES  300
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  550
+#define YYNSTATES  555
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
@@ -779,36 +780,37 @@
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   640,   640,   644,   648,   652,   656,   659,   666,   669,
-     672,   675,   678,   681,   684,   687,   690,   693,   699,   705,
-     712,   718,   725,   734,   739,   748,   753,   758,   762,   768,
-     773,   776,   779,   784,   787,   790,   793,   796,   799,   802,
-     805,   808,   811,   823,   826,   829,   847,   867,   870,   873,
-     878,   883,   889,   895,   904,   908,   914,   917,   922,   927,
-     932,   939,   946,   950,   956,   959,   964,   967,   972,   975,
-     980,   983,  1002,  1005,  1010,  1014,  1020,  1023,  1026,  1029,
-    1034,  1037,  1040,  1047,  1052,  1063,  1068,  1073,  1077,  1081,
-    1087,  1090,  1096,  1104,  1107,  1110,  1116,  1121,  1126,  1130,
-    1136,  1140,  1143,  1148,  1151,  1156,  1161,  1166,  1170,  1176,
-    1185,  1188,  1193,  1196,  1215,  1220,  1224,  1230,  1236,  1245,
-    1250,  1258,  1264,  1270,  1273,  1276,  1281,  1284,  1289,  1293,
-    1299,  1302,  1305,  1310,  1315,  1320,  1323,  1326,  1331,  1334,
-    1337,  1340,  1343,  1346,  1349,  1352,  1357,  1360,  1365,  1369,
-    1373,  1376,  1380,  1383,  1388,  1391,  1396,  1399,  1404,  1408,
-    1414,  1417,  1422,  1425,  1430,  1433,  1438,  1441,  1460,  1463,
-    1468,  1472,  1478,  1484,  1489,  1492,  1497,  1500,  1505,  1508,
-    1513,  1516,  1521,  1522,  1525,  1530,  1531,  1534,  1539,  1543,
-    1549,  1556,  1559,  1562,  1567,  1570,  1573,  1579,  1582,  1587,
-    1592,  1601,  1606,  1615,  1620,  1623,  1628,  1631,  1636,  1642,
-    1648,  1651,  1654,  1657,  1660,  1663,  1669,  1678,  1681,  1686,
-    1689,  1694,  1697,  1702,  1705,  1708,  1711,  1715,  1719,  1722,
-    1725,  1728,  1731,  1736,  1740,  1744,  1747,  1752,  1757,  1761,
-    1767,  1770,  1775,  1779,  1785,  1790,  1794,  1800,  1805,  1808,
-    1813,  1817,  1823,  1826,  1829,  1832,  1844,  1848,  1867,  1880,
-    1895,  1898,  1901,  1904,  1907,  1910,  1915,  1919,  1925,  1928,
-    1933,  1937,  1944,  1947,  1950,  1953,  1956,  1959,  1962,  1965,
-    1968,  1971,  1976,  1987,  1990,  1995,  1998,  2001,  2007,  2011,
-    2017,  2020,  2028,  2031,  2034,  2037,  2043,  2048,  2053
+       0,   644,   644,   648,   652,   656,   660,   663,   670,   673,
+     676,   679,   682,   685,   688,   691,   694,   697,   703,   709,
+     716,   722,   729,   738,   743,   752,   757,   762,   766,   772,
+     777,   780,   783,   788,   791,   794,   797,   800,   803,   806,
+     809,   812,   815,   827,   830,   833,   851,   871,   874,   877,
+     882,   887,   893,   899,   908,   912,   918,   921,   926,   931,
+     936,   943,   950,   954,   960,   963,   968,   971,   976,   979,
+     984,   987,  1006,  1009,  1014,  1018,  1024,  1027,  1030,  1033,
+    1038,  1041,  1044,  1051,  1056,  1067,  1072,  1077,  1081,  1085,
+    1091,  1094,  1100,  1108,  1111,  1114,  1120,  1125,  1130,  1134,
+    1140,  1144,  1147,  1152,  1155,  1160,  1165,  1170,  1174,  1180,
+    1189,  1192,  1197,  1200,  1219,  1224,  1228,  1234,  1240,  1249,
+    1254,  1262,  1268,  1274,  1277,  1280,  1285,  1288,  1293,  1297,
+    1303,  1306,  1309,  1314,  1319,  1324,  1327,  1330,  1335,  1338,
+    1341,  1344,  1347,  1350,  1353,  1356,  1361,  1364,  1369,  1373,
+    1377,  1380,  1384,  1387,  1392,  1395,  1400,  1403,  1408,  1412,
+    1418,  1421,  1426,  1429,  1434,  1437,  1442,  1445,  1464,  1467,
+    1472,  1476,  1482,  1488,  1493,  1496,  1501,  1504,  1509,  1512,
+    1517,  1520,  1525,  1526,  1529,  1534,  1535,  1538,  1543,  1547,
+    1553,  1560,  1563,  1566,  1571,  1574,  1577,  1583,  1586,  1591,
+    1596,  1605,  1610,  1619,  1624,  1627,  1632,  1635,  1640,  1646,
+    1652,  1655,  1658,  1661,  1664,  1667,  1673,  1682,  1685,  1690,
+    1693,  1698,  1701,  1706,  1709,  1712,  1715,  1719,  1723,  1726,
+    1729,  1732,  1735,  1740,  1744,  1748,  1751,  1756,  1761,  1765,
+    1771,  1774,  1779,  1783,  1789,  1794,  1798,  1804,  1809,  1812,
+    1817,  1821,  1827,  1830,  1833,  1836,  1848,  1852,  1871,  1884,
+    1899,  1902,  1905,  1908,  1911,  1914,  1919,  1923,  1929,  1933,
+    1939,  1942,  1947,  1951,  1958,  1961,  1964,  1967,  1970,  1973,
+    1976,  1979,  1982,  1985,  1990,  2001,  2004,  2009,  2012,  2015,
+    2021,  2025,  2031,  2034,  2042,  2045,  2048,  2051,  2057,  2062,
+    2067
 };
 #endif
 
@@ -883,10 +885,11 @@
   "simple_when_clause_list", "simple_when_clause",
   "searched_when_clause_list", "searched_when_clause", "opt_else_clause",
   "expression_list", "literal_value", "datetime_unit",
-  "literal_value_commalist", "attribute_ref", "attribute_ref_list",
-  "comparison_operation", "unary_operation", "add_operation",
-  "multiply_operation", "name_commalist", "any_name", "boolean_value",
-  "command", "command_argument_list", YY_NULLPTR
+  "literal_value_commalist", "literal_value_commalist_multiple",
+  "attribute_ref", "attribute_ref_list", "comparison_operation",
+  "unary_operation", "add_operation", "multiply_operation",
+  "name_commalist", "any_name", "boolean_value", "command",
+  "command_argument_list", YY_NULLPTR
 };
 #endif
 
@@ -913,10 +916,10 @@
 };
 # endif
 
-#define YYPACT_NINF -395
+#define YYPACT_NINF -410
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-395)))
+  (!!((Yystate) == (-410)))
 
 #define YYTABLE_NINF -139
 
@@ -927,61 +930,62 @@
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     174,  -395,  -395,   -64,    85,   -26,    14,   -31,   -16,  -395,
-      40,   196,   196,  -395,   109,   102,  -395,  -395,  -395,  -395,
-    -395,  -395,  -395,  -395,  -395,  -395,   148,    -3,    87,  -395,
-     -40,   121,   196,  -395,  -395,     1,    -5,   196,   196,   196,
-     196,   196,  -395,  -395,   716,    82,     2,  -395,   153,    63,
-    -395,  -395,  -395,    98,   152,    -3,    40,   141,  -395,    98,
-    -395,  -395,  -395,    12,    97,   116,   261,   116,   169,   126,
-     138,  -395,   176,  -395,  -395,   270,   274,  -395,  -395,  -395,
-     807,   139,  -395,   210,  -395,  -395,   154,  -395,  -395,   297,
-    -395,  -395,  -395,  -395,   172,  -395,  -395,   177,   231,   901,
-     313,   265,   192,  -395,  -395,   338,    23,  -395,  -395,   243,
-    -395,  -395,  -395,  -395,  -395,  1083,    -7,   196,   196,   214,
-     196,     1,   196,  -395,    98,   363,  -395,   205,   263,  -395,
-    -395,  -395,   255,  -395,   116,  -395,   196,   196,   625,  -395,
-    -395,   262,   196,  -395,  -395,  -395,   625,    33,   -29,  -395,
-     409,  -395,   165,   165,  1174,   411,  -395,   -14,    28,  -395,
-      13,   138,  1174,  -395,  -395,   196,  1174,  -395,  -395,  -395,
-    -395,  1174,    18,   274,  -395,   196,   398,    59,  -395,   417,
-    -395,    98,  -395,   202,  -395,   116,    98,    87,  -395,   196,
-      80,   196,   196,   196,  -395,   285,  -395,   211,  1241,   992,
-     214,   534,   422,   423,  -395,  -395,   312,   415,  1252,   219,
-      43,  1174,    61,  -395,  1174,  -395,   369,   292,  -395,  -395,
-    -395,  -395,  -395,  -395,   367,  -395,   216,   294,  -395,  -395,
-       7,   186,   267,  -395,   298,   186,     3,   372,  -395,  -395,
-      23,  -395,   347,  -395,  -395,   295,  1174,  -395,   351,   229,
-     196,  -395,  1174,  -395,   196,  -395,  -395,  -395,   303,   366,
-     368,   304,  -395,  -395,  -395,   232,  -395,  -395,  -395,  -395,
-    -395,    34,   196,   323,    80,   196,  -395,   188,  -395,  -395,
-       4,    65,   625,   625,   276,  -395,  -395,  -395,  -395,  -395,
-    -395,  -395,  -395,  1174,   311,  1174,    51,  -395,   234,   326,
-    1174,    71,  -395,   399,   351,  -395,  -395,  1174,   453,  -395,
-     160,   196,  -395,  -395,   370,  -395,   373,   374,   379,    13,
-    -395,   457,   462,   186,   430,   400,   431,   329,   380,  -395,
-     236,  -395,  1174,  -395,   351,  -395,   625,   333,   334,   196,
-    -395,   196,  -395,  -395,  -395,  -395,  -395,  -395,  -395,   196,
-    -395,  -395,  -395,   238,   454,   184,  -395,   336,   348,  -395,
-     391,   342,  1252,  -395,   403,   196,  -395,  -395,   188,  -395,
-    -395,   423,  -395,  -395,  -395,  1174,   345,   341,   901,  -395,
-     351,   401,  -395,  -395,  1252,   350,   351,  1174,  -395,    37,
-      35,  -395,  -395,  -395,  -395,  -395,    13,   267,   390,   395,
-    -395,  1174,   625,   396,  1174,  -395,   455,   108,  -395,   351,
-       8,   196,   196,   240,  -395,   242,  -395,   196,  -395,  -395,
-    -395,  -395,   354,    80,   461,   402,  -395,   625,  -395,  -395,
-     356,  -395,   346,   901,  -395,  1174,   245,  -395,  -395,  1252,
-     351,  -395,   495,  -395,   408,  -395,  -395,   358,   422,   464,
-     420,   358,  1174,  -395,  -395,  -395,   490,  -395,   249,   251,
-    -395,  -395,  -395,   196,  -395,  -395,   375,   468,  -395,    19,
-     196,  1174,   264,   351,  -395,   266,   371,   625,  1174,   504,
-     376,   377,  -395,   227,    46,   405,  -395,   269,   196,    -9,
-    -395,   381,   351,  -395,  -395,  -395,   422,   377,  -395,   196,
-    -395,   376,  -395,  1174,  -395,  -395,   421,   418,   407,   425,
-     515,   196,  -395,   277,  -395,  -395,   384,  -395,   496,  -395,
-    -395,    49,  -395,  -395,  -395,  -395,    56,   386,  -395,   196,
-     388,  -395,  -395,   466,   426,   467,  -395,   196,   279,   347,
-    -395,  -395,  -395,   281,   445,   404,  -395,   539,  -395,  -395
+     405,  -410,  -410,   -52,    43,   -13,    34,   -38,   116,  -410,
+      48,   231,   231,  -410,   115,   119,  -410,  -410,  -410,  -410,
+    -410,  -410,  -410,  -410,  -410,  -410,   166,    46,    49,  -410,
+     -36,   205,   231,  -410,  -410,    38,   132,   231,   231,   231,
+     231,   231,  -410,  -410,   652,    97,    72,  -410,   203,    95,
+    -410,  -410,  -410,   130,   175,    46,    48,   158,  -410,   130,
+    -410,  -410,  -410,    25,    61,   128,   270,   128,   184,   142,
+     149,  -410,   106,  -410,  -410,   309,   313,  -410,  -410,  -410,
+     743,   153,  -410,   218,  -410,  -410,   189,  -410,  -410,   331,
+    -410,  -410,  -410,  -410,   199,  -410,  -410,   207,   272,   837,
+     347,   305,   211,  -410,  -410,   328,    19,  -410,  -410,   262,
+    -410,  -410,  -410,  -410,  -410,  1019,     5,   231,   231,   220,
+     231,    38,   231,  -410,   130,   373,  -410,   148,   243,  -410,
+    -410,  -410,   244,  -410,   128,  -410,   231,   231,   561,  -410,
+    -410,   245,   231,  -410,  -410,  -410,   561,    52,    17,  -410,
+     400,  -410,   140,   140,  1110,   402,  -410,     1,    29,  -410,
+      20,   149,  1110,  -410,  -410,   231,  1110,  -410,  -410,  -410,
+    -410,  1110,    21,   313,  -410,   231,   323,   -64,  -410,   416,
+    -410,   130,  -410,   167,  -410,   128,   130,    49,  -410,   231,
+     152,   231,   231,   231,  -410,   269,  -410,   169,  1177,   928,
+     220,   470,   426,   433,  -410,  -410,   407,   428,  1188,   303,
+     173,    23,  1110,    64,  -410,  1110,  -410,   388,   306,  -410,
+    -410,  -410,  -410,  -410,  -410,   381,  -410,    66,   310,  -410,
+    -410,     8,   209,   215,  -410,   311,   209,     9,   385,  -410,
+    -410,    19,  -410,   360,  -410,  -410,   315,  1110,  -410,   301,
+     180,   231,  -410,  1110,  -410,   231,  -410,  -410,  -410,   320,
+     384,   386,   329,  -410,  -410,  -410,   196,  -410,  -410,  -410,
+    -410,  -410,    16,   231,   341,   152,   231,  -410,   174,  -410,
+    -410,     2,    81,   561,   561,   206,  -410,  -410,  -410,  -410,
+    -410,  -410,  -410,  -410,  1110,   334,  1110,    58,  -410,   210,
+     335,   349,  1110,    68,  -410,   420,   301,  -410,  -410,  1110,
+     476,  -410,   162,   231,  -410,  -410,   389,  -410,   390,   391,
+     406,    20,  -410,   486,   487,   209,   453,   421,   455,   353,
+     403,  -410,   223,  -410,  1110,  -410,   301,  -410,   561,   357,
+     358,   231,  -410,   231,  -410,  -410,  -410,  -410,  -410,  -410,
+    -410,   231,  -410,  -410,  -410,   225,   477,    86,  -410,   361,
+     366,  -410,   417,   364,  1188,  -410,   430,   231,  -410,  -410,
+     174,  -410,  -410,   433,  -410,  -410,  -410,  1110,   367,   284,
+     837,  -410,   301,   424,  -410,  -410,  1188,  1188,   374,   301,
+    1110,  -410,    33,   -16,  -410,  -410,  -410,  -410,  -410,    20,
+     215,   419,   422,  -410,  1110,   561,   429,  1110,  -410,   475,
+      18,  -410,   301,    31,   231,   231,   227,  -410,   233,  -410,
+     231,  -410,  -410,  -410,  -410,   382,   152,   489,   432,  -410,
+     561,  -410,  -410,   392,  -410,   289,   837,  -410,  1110,   238,
+    -410,  -410,   240,  1188,   301,  -410,   521,  -410,   437,  -410,
+    -410,   393,   426,   498,   456,   393,  1110,  -410,  -410,  -410,
+     522,  -410,   246,   252,  -410,  -410,  -410,   231,  -410,  -410,
+     399,   504,  -410,    32,   231,  1110,   254,   301,  -410,  -410,
+     257,   404,   561,  1110,   540,   412,   408,  -410,   274,    11,
+     442,  -410,   286,   231,   127,  -410,   410,   301,  -410,  -410,
+    -410,   426,   408,  -410,   231,  -410,   412,  -410,  1110,  -410,
+    -410,   460,   454,   447,   458,   549,   231,  -410,   290,  -410,
+    -410,   425,  -410,   528,  -410,  -410,    -6,  -410,  -410,  -410,
+    -410,    12,   431,  -410,   231,   434,  -410,  -410,   495,   462,
+     496,  -410,   231,   293,   360,  -410,  -410,  -410,   299,   473,
+     435,  -410,   563,  -410,  -410
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -989,93 +993,96 @@
      means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     6,   298,     0,     0,     0,     0,     0,     0,    18,
+       0,     6,   300,     0,     0,     0,     0,     0,     0,    18,
      123,     0,     0,     7,     0,     0,    15,     8,    10,    11,
       13,    14,     9,    17,    12,    16,     0,   112,   119,   121,
-       0,   296,     0,   290,   291,     0,     0,     0,     0,     0,
+       0,   298,     0,   292,   293,     0,     0,     0,     0,     0,
        0,     0,   124,   125,     0,     0,   114,   115,     0,   156,
        1,     3,     2,     0,     0,   112,   123,     0,   110,     0,
-       5,     4,   297,     0,     0,   103,     0,   103,     0,     0,
-     197,    25,     0,   256,   253,     0,   282,   126,    40,    29,
+       5,     4,   299,     0,     0,   103,     0,   103,     0,     0,
+     197,    25,     0,   256,   253,     0,   284,   126,    40,    29,
        0,     0,    30,    31,    34,    36,     0,    37,    39,     0,
       41,   252,    35,    38,     0,    32,    33,     0,     0,     0,
        0,     0,   127,   128,   232,   132,   218,   220,   222,   225,
-     228,   229,   230,   224,   223,     0,   268,     0,     0,     0,
+     228,   229,   230,   224,   223,     0,   270,     0,     0,     0,
        0,     0,     0,   111,     0,     0,   120,     0,     0,   100,
      102,   101,     0,    98,   103,    97,     0,     0,     0,   106,
      198,     0,     0,    94,   254,   255,     0,     0,   248,   245,
        0,    43,     0,   257,     0,     0,    44,     0,     0,   259,
-       0,   197,     0,   283,   284,     0,     0,   131,   286,   287,
-     285,     0,     0,     0,   221,     0,     0,   197,   108,     0,
-     116,     0,   117,     0,   288,   103,     0,   118,   113,     0,
+       0,   197,     0,   285,   286,     0,     0,   131,   288,   289,
+     287,     0,     0,     0,   221,     0,     0,   197,   108,     0,
+     116,     0,   117,     0,   290,   103,     0,   118,   113,     0,
        0,     0,     0,     0,    96,    66,    27,     0,     0,     0,
-       0,     0,   199,   201,   203,   205,     0,   223,     0,     0,
-       0,     0,   248,   242,     0,   246,     0,     0,   262,   263,
-     264,   261,   265,   260,     0,   258,     0,     0,   134,   231,
-       0,     0,   158,   147,   133,   152,   135,   160,   129,   130,
-     217,   219,   174,   226,   269,     0,     0,   233,   250,     0,
-       0,   105,     0,   157,     0,    99,    95,    19,     0,     0,
-       0,     0,    20,    21,    22,     0,    74,    76,    77,    78,
-      79,     0,     0,     0,    64,     0,    42,    56,   204,   212,
-       0,     0,     0,     0,     0,   272,   274,   275,   276,   277,
-     273,   278,   280,     0,     0,     0,     0,   266,     0,     0,
-       0,     0,   243,     0,   249,   241,    45,     0,     0,    46,
-     138,     0,   148,   154,   144,   139,   140,   142,     0,     0,
-     151,     0,     0,   150,     0,   162,     0,     0,   176,   234,
-       0,   235,     0,   107,   109,   289,     0,     0,     0,     0,
-     104,     0,    81,    84,    82,   294,   295,   293,   292,     0,
-      80,    85,   270,     0,   268,     0,    63,    65,    68,    28,
-       0,     0,     0,    47,     0,     0,    49,    55,    57,    26,
-     211,   200,   202,   279,   281,     0,     0,     0,     0,   213,
-     210,     0,   209,    93,     0,     0,   247,     0,   240,     0,
-       0,   153,   155,   145,   141,   143,     0,   159,     0,     0,
-     149,     0,     0,   164,     0,   227,     0,   178,   236,   251,
-       0,     0,     0,     0,    75,     0,    67,     0,    86,    87,
-      88,    89,    90,     0,     0,    70,    48,     0,    51,    50,
-       0,    54,     0,     0,   215,     0,     0,   208,   267,     0,
-     244,   237,     0,   238,     0,   136,   137,   161,   163,     0,
-     166,   175,     0,   181,   180,   173,     0,    61,     0,     0,
-      58,    83,   271,     0,    24,    62,     0,     0,    23,     0,
-       0,     0,     0,   206,   214,     0,     0,     0,     0,     0,
-     168,   177,   188,   191,     0,     0,    59,     0,     0,     0,
-      52,     0,   207,   216,    92,   239,   146,   165,   167,     0,
-     122,   169,   170,     0,   192,   193,   194,     0,     0,     0,
-       0,     0,    91,     0,    72,    73,     0,    53,     0,   171,
-     189,     0,   190,   182,   184,   183,     0,     0,    69,     0,
-       0,   195,   196,     0,     0,     0,   179,     0,     0,   174,
-     185,   187,   186,     0,     0,     0,    60,     0,   172,    71
+       0,     0,   199,   201,   203,   205,     0,   223,     0,    93,
+       0,     0,     0,   248,   242,     0,   246,     0,     0,   262,
+     263,   264,   261,   265,   260,     0,   258,     0,     0,   134,
+     231,     0,     0,   158,   147,   133,   152,   135,   160,   129,
+     130,   217,   219,   174,   226,   271,     0,     0,   233,   250,
+       0,     0,   105,     0,   157,     0,    99,    95,    19,     0,
+       0,     0,     0,    20,    21,    22,     0,    74,    76,    77,
+      78,    79,     0,     0,     0,    64,     0,    42,    56,   204,
+     212,     0,     0,     0,     0,     0,   274,   276,   277,   278,
+     279,   275,   280,   282,     0,     0,     0,     0,   266,     0,
+       0,     0,     0,     0,   243,     0,   249,   241,    45,     0,
+       0,    46,   138,     0,   148,   154,   144,   139,   140,   142,
+       0,     0,   151,     0,     0,   150,     0,   162,     0,     0,
+     176,   234,     0,   235,     0,   107,   109,   291,     0,     0,
+       0,     0,   104,     0,    81,    84,    82,   296,   297,   295,
+     294,     0,    80,    85,   272,     0,   270,     0,    63,    65,
+      68,    28,     0,     0,     0,    47,     0,     0,    49,    55,
+      57,    26,   211,   200,   202,   281,   283,     0,     0,     0,
+       0,   213,   210,     0,   209,   268,     0,     0,     0,   247,
+       0,   240,     0,     0,   153,   155,   145,   141,   143,     0,
+     159,     0,     0,   149,     0,     0,   164,     0,   227,     0,
+     178,   236,   251,     0,     0,     0,     0,    75,     0,    67,
+       0,    86,    87,    88,    89,    90,     0,     0,    70,    48,
+       0,    51,    50,     0,    54,     0,     0,   215,     0,     0,
+     208,   267,     0,     0,   244,   237,     0,   238,     0,   136,
+     137,   161,   163,     0,   166,   175,     0,   181,   180,   173,
+       0,    61,     0,     0,    58,    83,   273,     0,    24,    62,
+       0,     0,    23,     0,     0,     0,     0,   206,   214,   269,
+       0,     0,     0,     0,     0,   168,   177,   188,   191,     0,
+       0,    59,     0,     0,     0,    52,     0,   207,   216,    92,
+     239,   146,   165,   167,     0,   122,   169,   170,     0,   192,
+     193,   194,     0,     0,     0,     0,     0,    91,     0,    72,
+      73,     0,    53,     0,   171,   189,     0,   190,   182,   184,
+     183,     0,     0,    69,     0,     0,   195,   196,     0,     0,
+       0,   179,     0,     0,   174,   185,   187,   186,     0,     0,
+       0,    60,     0,   172,    71
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,  -164,  -395,
-     349,   180,  -395,  -395,  -271,  -395,  -395,  -395,  -395,  -395,
-    -395,  -394,   209,  -395,  -395,  -395,  -395,  -395,  -395,  -395,
-    -395,    24,   -46,  -395,  -395,  -395,   301,  -395,   497,  -395,
-    -395,   435,   259,   433,   -28,   498,  -395,  -395,   397,  -395,
-     -90,  -395,  -395,  -207,   162,  -187,   -10,  -395,  -395,  -395,
-    -395,  -395,  -395,  -395,    60,    21,  -395,  -395,  -395,  -395,
-    -395,  -395,    84,    62,  -395,  -395,   -54,  -395,  -145,   282,
-     280,   382,   -35,   406,   412,   451,  -156,  -395,  -395,  -395,
-    -395,   355,  -395,   427,   359,  -232,  -203,   429,   129,  -128,
-    -395,  -395,  -395,  -395,  -395,  -136,    -4,  -395,  -395,  -395
+    -410,  -410,  -410,  -410,  -410,  -410,  -410,  -410,  -148,  -410,
+     376,   216,  -410,  -410,  -264,  -410,  -410,  -410,  -410,  -410,
+    -410,  -409,   236,  -410,  -410,  -410,  -410,  -410,  -410,  -410,
+    -410,    85,    -3,  -410,  -410,  -410,   325,  -410,   526,  -410,
+    -410,   467,   217,   464,   -43,   533,  -410,  -410,   436,  -410,
+    -114,  -410,  -410,  -186,   192,  -184,    -9,  -410,  -410,  -410,
+    -410,  -410,  -410,  -410,    89,    55,  -410,  -410,  -410,  -410,
+    -410,  -410,   109,    92,  -410,  -410,    79,  -410,  -142,   318,
+     322,   409,   -42,   441,   439,   501,  -154,  -410,  -410,  -410,
+    -410,   398,  -410,   469,   413,  -232,  -195,   449,  -324,  -410,
+    -129,  -410,  -410,  -410,  -410,  -410,  -141,    -4,  -410,  -410,
+    -410
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,    14,    15,    16,    17,    18,    19,    20,   196,   197,
-     100,   367,   368,   369,   262,   357,   358,   273,   425,   468,
-     516,   265,   266,   267,   268,   269,   270,   422,   464,    21,
+     100,   369,   370,   371,   263,   359,   360,   274,   428,   472,
+     521,   266,   267,   268,   269,   270,   271,   425,   468,    21,
       22,    65,   133,    23,    24,   177,   178,    25,    58,    26,
       46,    47,   157,    28,    29,    44,   101,   102,   103,   161,
-     104,   323,   318,   232,   233,   312,   313,   234,   325,   403,
-     450,   480,   500,   501,   502,   327,   328,   407,   455,   456,
-     510,   536,   481,   482,   506,   522,   139,   140,   202,   203,
+     104,   325,   320,   233,   234,   314,   315,   235,   327,   406,
+     454,   485,   505,   506,   507,   329,   330,   410,   459,   460,
+     515,   541,   486,   487,   511,   527,   139,   140,   202,   203,
      204,   205,   206,   106,   107,   108,   109,   110,   111,   112,
-     212,   213,   148,   149,   216,   249,   113,   224,   298,   114,
-     353,   295,   115,   166,   171,   183,   116,   351,    30,    31
+     213,   214,   148,   149,   217,   250,   113,   225,   299,   209,
+     114,   355,   296,   115,   166,   171,   183,   116,   353,    30,
+      31
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1083,256 +1090,215 @@
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      36,   210,    48,   356,   235,   297,   209,    45,    49,   105,
-     207,    33,   282,    34,   330,    56,   282,    33,   207,    34,
-     175,   135,    33,   310,    34,   257,    56,   282,    63,   182,
-      56,   126,   214,    68,    69,    70,    71,    72,    33,   342,
-      34,   343,   321,   127,   143,   147,   168,   169,   320,   163,
-     164,   282,    37,   507,   163,   164,   280,    32,   163,   164,
-      67,   381,   344,   533,   158,   514,    66,    41,    42,   487,
-     231,   207,   128,   207,   235,   284,   285,   286,   287,   288,
-     289,   290,   291,   292,   293,    39,   163,   164,   194,    33,
-      40,    34,   163,   164,   513,    38,   508,   515,    43,   345,
-      60,   167,   129,    61,   442,   146,   534,   237,    48,    50,
-     279,   359,   397,   179,    49,   531,   184,    59,   186,   226,
-      64,    10,   214,   251,    62,   258,    64,   105,   346,   347,
-     322,   228,   195,   198,    57,   532,   400,   176,   184,   255,
-     231,   248,   294,   382,   352,   185,   436,   176,   118,   370,
-     259,   230,   465,   457,   207,   207,   236,   230,   256,   428,
-     348,   239,   242,   235,   490,   300,   281,   211,   243,   447,
-     170,   244,   451,   229,   509,     1,   301,     2,   349,   304,
-     443,   438,   441,   260,   535,   198,   119,   263,   264,   271,
-      33,   410,    34,   387,   138,   211,    53,   117,   360,    10,
-      33,   472,    34,   413,   379,   250,     3,   120,   207,   261,
-     229,   248,    10,   415,   453,   130,   131,   334,   218,   311,
-     454,   418,     4,     5,   419,   420,   236,    49,    54,   231,
-       6,    49,   314,   361,     7,   122,   297,   163,   164,   315,
-     235,   219,    51,   362,    52,   125,   179,   316,   163,   164,
-     335,   189,   190,   132,     8,   220,   221,   448,   377,    27,
-     380,   504,    10,    35,   136,   386,   134,   350,   354,   317,
-     137,   198,   389,   138,   207,   458,   459,   144,   222,     9,
-     363,   145,   469,   150,   505,    55,   434,   308,    10,   462,
-      10,   364,   151,   373,   374,   375,   365,   409,   152,   207,
-     421,   392,   153,   223,    11,   391,   231,    49,   141,   191,
-     192,    12,   121,   156,    13,   236,   154,   366,   159,    49,
-     142,   155,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   496,   163,   164,   184,   160,   271,   162,   314,
-     432,   172,    33,   248,    34,   184,   315,   253,   254,   207,
-     435,  -138,   440,   376,   316,   471,   274,   275,   181,   163,
-     164,   430,   163,   164,   299,   254,   248,   163,   164,   248,
-     188,   165,   163,   164,   331,   332,   317,   340,   341,   383,
-     384,   408,   332,   416,   417,   460,   254,   461,   254,   294,
-     474,   332,   236,   538,   485,   254,   486,   254,   248,   193,
-     473,   543,    33,    73,    34,    74,   208,   184,   184,   493,
-     332,   494,   384,   354,   512,   341,   217,   483,   227,    75,
-      76,   245,   528,   341,   544,   254,   546,   254,   252,   272,
-     282,   305,   283,    78,    79,   296,   492,   306,   307,   309,
-     329,    80,    81,   483,   319,   324,   326,   336,   339,    82,
-      83,   337,    84,   338,   355,   378,   246,    85,   385,   271,
-     390,   388,    86,   396,   398,    87,   491,   393,   483,   399,
-     394,   395,   401,   404,   405,   402,   406,   411,   412,    88,
-      89,   175,   423,   426,   271,   424,   427,    90,   429,   433,
-      91,   445,   449,   437,   439,   518,   446,   452,   463,   466,
-     470,   467,   476,   477,   332,    92,   478,   527,   479,   484,
-     489,   498,   499,   511,   521,    93,   495,   524,    94,   488,
-     523,    95,    96,   503,   526,   184,   517,   525,   529,   530,
-     537,    97,   539,   184,   540,   542,   541,    98,    33,    73,
-      34,    74,    99,   247,   199,   547,   549,   277,   431,   548,
-     414,   333,   123,   180,   124,    75,    76,   187,   444,   238,
-     545,   519,   497,   372,   371,   520,   174,   302,   475,    78,
-      79,   303,   240,     0,     0,   215,     0,    80,    81,     0,
-       0,   278,   225,   241,     0,    82,    83,     0,    84,     0,
-       0,     0,     0,    85,     0,     0,     0,   200,    86,     0,
-       0,    87,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    88,    89,     0,     0,     0,
-       0,     0,     0,    90,     0,     0,    91,     0,     0,    33,
-      73,    34,    74,     0,     0,   199,     0,     0,     0,     0,
-       0,    92,     0,     0,     0,     0,    75,    76,    10,     0,
-       0,    93,     0,     0,    94,     0,     0,    95,    96,     0,
-      78,    79,     0,     0,     0,     0,     0,    97,    80,    81,
-       0,     0,     0,    98,     0,     0,    82,    83,   201,    84,
-       0,     0,     0,     0,    85,     0,     0,     0,   200,    86,
-       0,     0,    87,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    88,    89,     0,     0,
-       0,     0,     0,     0,    90,     0,     0,    91,     0,     0,
-      33,    73,    34,    74,     0,     0,     0,     0,     0,     0,
-       0,     0,    92,     0,     0,     0,     0,    75,    76,    77,
-       0,     0,    93,     0,     0,    94,     0,     0,    95,    96,
-       0,    78,    79,     0,     0,     0,     0,     0,    97,    80,
-      81,     0,     0,     0,    98,     0,     0,    82,    83,   201,
-      84,     0,     0,     0,     0,    85,     0,     0,     0,     0,
-      86,     0,     0,    87,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    88,    89,     0,
-       0,     0,     0,     0,     0,    90,     0,     0,    91,     0,
-       0,    33,    73,    34,    74,     0,     0,     0,     0,     0,
-       0,     0,     0,    92,     0,     0,     0,     0,    75,    76,
-       0,     0,     0,    93,     0,     0,    94,     0,     0,    95,
-      96,     0,    78,    79,     0,     0,     0,     0,     0,    97,
-      80,    81,     0,     0,     0,    98,     0,     0,    82,    83,
-      99,    84,     0,     0,     0,     0,    85,     0,     0,     0,
-       0,    86,     0,     0,    87,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    88,    89,
-       0,     0,     0,     0,     0,     0,    90,     0,     0,    91,
-       0,     0,     0,     0,     0,    33,    73,    34,    74,     0,
-       0,     0,     0,     0,    92,     0,     0,     0,     0,     0,
-       0,     0,    75,    76,    93,     0,     0,    94,     0,     0,
-      95,    96,     0,     0,     0,     0,    78,    79,     0,     0,
-      97,   146,     0,     0,    80,    81,    98,     0,     0,     0,
-       0,    99,    82,    83,     0,    84,     0,     0,     0,     0,
-      85,     0,     0,     0,     0,    86,     0,     0,    87,     0,
+      36,   210,   105,    48,   211,   182,   236,    45,    49,   207,
+     283,   358,    33,   298,    34,   332,   126,   207,   512,   538,
+      33,   344,    34,   345,    33,    33,    34,    34,    63,   143,
+      56,   283,   175,    68,    69,    70,    71,    72,   147,   283,
+     283,   258,   168,   169,   346,   312,   232,    33,   323,    34,
+     163,   164,   322,   446,   163,   164,   127,   158,   492,   281,
+     536,   513,   539,   442,   135,    37,   129,    56,   383,    32,
+     207,   138,   207,   163,   164,    56,    42,   236,   215,    59,
+     537,   347,   251,    40,   518,   128,   280,   163,   164,   163,
+     164,   285,   286,   287,   288,   289,   290,   291,   292,   293,
+     294,   167,   163,   164,    60,    39,    43,    61,    38,    48,
+     348,   349,   227,   179,    49,    50,   184,   232,   186,   480,
+     105,    67,    10,   421,   457,   215,   422,   423,   361,   447,
+     458,   194,   195,   198,   249,   400,   324,   310,   184,   514,
+     540,   403,   350,   257,   354,   302,   229,   372,   439,   176,
+     384,   146,   231,   176,   207,   207,   237,    10,   295,   282,
+     351,   240,   469,    64,   231,   243,   170,   236,   244,   431,
+     303,   245,   451,   306,   230,   455,   461,   495,   445,   130,
+     131,   381,   256,    57,   362,   198,   212,   264,   265,   272,
+     390,   441,   298,   219,   189,   190,   413,   259,   212,    41,
+     416,   519,   424,    66,   476,   249,   185,   232,    62,   207,
+     418,   336,   117,    33,    53,    34,   220,    27,   118,   363,
+      10,    35,   260,   375,   376,   377,   230,   237,    49,   364,
+     221,   222,    49,   520,   316,    33,   119,    34,   141,   120,
+     238,   317,   313,    55,    10,   236,    54,   179,   298,   318,
+     142,   337,   379,   223,   382,   261,   252,    64,   122,    51,
+     389,    52,   125,   452,   437,   132,   365,   392,   352,   356,
+     121,   319,   198,   462,   463,   134,   207,   366,   224,   136,
+      10,   262,   367,   378,   138,   232,   137,   316,   473,   191,
+     192,   466,   412,   438,   317,   163,   164,   150,   475,  -138,
+     151,   207,   318,   368,   395,   163,   164,   394,   509,    49,
+     163,   164,   254,   255,   275,   276,   144,   237,   301,   255,
+     145,    49,   163,   164,   319,   333,   334,    33,    73,    34,
+      74,   510,    33,   152,    34,   435,   153,   184,   249,   272,
+     501,   342,   343,   154,    75,    76,   246,   184,   444,   163,
+     164,   155,   159,   207,   156,   385,   386,   162,    78,    79,
+     172,   165,   249,   433,   181,   249,    80,    81,   411,   334,
+     419,   420,   464,   255,    82,    83,   160,    84,   465,   255,
+     188,   247,    85,   478,   334,   479,   386,    86,   193,   208,
+      87,   490,   255,   543,   249,   237,   477,   491,   255,   498,
+     334,   548,   499,   386,    88,    89,     1,   218,     2,   228,
+     184,   184,    90,   273,   488,    91,   356,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   253,   163,   164,
+      92,   517,   343,   497,   283,   533,   343,     3,   549,   255,
+      93,   488,   284,    94,   551,   255,    95,    96,   297,   300,
+     307,   308,   309,     4,     5,   311,    97,   321,   326,   328,
+     331,     6,    98,   272,   338,     7,   488,    99,   248,   339,
+     496,   340,   357,   341,    33,    73,    34,    74,   380,   387,
+     199,   388,   391,   393,   295,     8,   396,   397,   398,   272,
+     399,    75,    76,   401,   402,   404,   405,   407,   408,   409,
+     523,   414,   415,   427,   175,    78,    79,   426,   430,   429,
+       9,   436,   532,    80,    81,   432,   440,   456,   443,    10,
+     449,    82,    83,   450,    84,   453,   467,   470,   481,    85,
+     184,   471,   482,   200,    86,    11,   474,    87,   184,   334,
+     483,   489,    12,   493,   484,    13,   494,   503,   504,   500,
+     516,    88,    89,   526,   508,   522,   528,   529,   531,    90,
+     530,   535,    91,   545,   547,    33,    73,    34,    74,   534,
+     554,   199,   546,   552,   278,   542,   335,    92,   544,   417,
+     553,   123,    75,    76,    10,   180,   434,    93,   187,   124,
+      94,   448,   502,    95,    96,   524,    78,    79,   239,   550,
+     525,   373,   226,    97,    80,    81,   374,   241,   279,    98,
+     242,   304,    82,    83,   201,    84,   174,   216,     0,     0,
+      85,     0,     0,     0,   200,    86,   305,     0,    87,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    88,    89,     0,     0,     0,     0,     0,     0,
       90,     0,     0,    91,     0,     0,    33,    73,    34,    74,
        0,     0,     0,     0,     0,     0,     0,     0,    92,     0,
-       0,     0,     0,    75,    76,    10,     0,     0,    93,     0,
+       0,     0,     0,    75,    76,    77,     0,     0,    93,     0,
        0,    94,     0,     0,    95,    96,     0,    78,    79,     0,
        0,     0,     0,     0,    97,    80,    81,     0,     0,     0,
-      98,     0,     0,    82,    83,    99,    84,     0,     0,     0,
-       0,    85,     0,     0,     0,   200,    86,     0,     0,    87,
+      98,     0,     0,    82,    83,   201,    84,     0,     0,     0,
+       0,    85,     0,     0,     0,     0,    86,     0,     0,    87,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    88,    89,     0,     0,     0,     0,     0,
        0,    90,     0,     0,    91,     0,     0,    33,    73,    34,
       74,     0,     0,     0,     0,     0,     0,     0,     0,    92,
-       0,     0,     0,     0,    75,   173,     0,     0,     0,    93,
+       0,     0,     0,     0,    75,    76,     0,     0,     0,    93,
        0,     0,    94,     0,     0,    95,    96,     0,    78,    79,
        0,     0,     0,     0,     0,    97,    80,    81,     0,     0,
-       0,    98,     0,     0,    82,    83,   201,    84,     0,     0,
+       0,    98,     0,     0,    82,    83,    99,    84,     0,     0,
        0,     0,    85,     0,     0,     0,     0,    86,     0,     0,
       87,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    88,    89,     0,     0,     0,     0,
-       0,     0,    90,     0,     0,    91,     0,     0,    33,    73,
-      34,    74,     0,     0,     0,     0,     0,     0,     0,     0,
-      92,     0,     0,     0,     0,    75,    76,     0,     0,     0,
-      93,     0,     0,    94,     0,     0,    95,    96,     0,    78,
-      79,     0,     0,     0,     0,     0,    97,    80,    81,     0,
-       0,     0,    98,     0,     0,    82,    83,    99,    84,     0,
-       0,     0,     0,    85,     0,     0,     0,     0,    86,     0,
-       0,    87,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    88,    89,    73,     0,    74,
-       0,     0,     0,    90,     0,     0,    91,     0,     0,     0,
-       0,     0,     0,    75,   173,     0,    78,    79,     0,     0,
-       0,    92,     0,     0,     0,    81,     0,    78,    79,     0,
-       0,    93,    82,    83,    94,    84,    81,    95,    96,     0,
-      85,     0,     0,    82,    83,     0,    84,    97,    87,     0,
-       0,    85,     0,    98,     0,     0,     0,     0,    99,    87,
-       0,     0,    88,   276,     0,     0,     0,     0,     0,     0,
-      90,     0,     0,    88,    89,     0,     0,     0,     0,     0,
-       0,    90,     0,     0,    91,     0,     0,     0,    92,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    93,    92,
-       0,     0,     0,     0,    95,    96,     0,     0,     0,    93,
-       0,     0,     0,     0,    97,    95,    96,     0,     0,     0,
-      98,     0,     0,     0,     0,    97,     0,     0,     0,     0,
-       0,    98
+       0,     0,    90,     0,     0,    91,     0,     0,     0,     0,
+       0,    33,    73,    34,    74,     0,     0,     0,     0,     0,
+      92,     0,     0,     0,     0,     0,     0,     0,    75,    76,
+      93,     0,     0,    94,     0,     0,    95,    96,     0,     0,
+       0,     0,    78,    79,     0,     0,    97,   146,     0,     0,
+      80,    81,    98,     0,     0,     0,     0,    99,    82,    83,
+       0,    84,     0,     0,     0,     0,    85,     0,     0,     0,
+       0,    86,     0,     0,    87,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    88,    89,
+       0,     0,     0,     0,     0,     0,    90,     0,     0,    91,
+       0,     0,    33,    73,    34,    74,     0,     0,     0,     0,
+       0,     0,     0,     0,    92,     0,     0,     0,     0,    75,
+      76,    10,     0,     0,    93,     0,     0,    94,     0,     0,
+      95,    96,     0,    78,    79,     0,     0,     0,     0,     0,
+      97,    80,    81,     0,     0,     0,    98,     0,     0,    82,
+      83,    99,    84,     0,     0,     0,     0,    85,     0,     0,
+       0,   200,    86,     0,     0,    87,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    88,
+      89,     0,     0,     0,     0,     0,     0,    90,     0,     0,
+      91,     0,     0,    33,    73,    34,    74,     0,     0,     0,
+       0,     0,     0,     0,     0,    92,     0,     0,     0,     0,
+      75,   173,     0,     0,     0,    93,     0,     0,    94,     0,
+       0,    95,    96,     0,    78,    79,     0,     0,     0,     0,
+       0,    97,    80,    81,     0,     0,     0,    98,     0,     0,
+      82,    83,   201,    84,     0,     0,     0,     0,    85,     0,
+       0,     0,     0,    86,     0,     0,    87,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      88,    89,     0,     0,     0,     0,     0,     0,    90,     0,
+       0,    91,     0,     0,    33,    73,    34,    74,     0,     0,
+       0,     0,     0,     0,     0,     0,    92,     0,     0,     0,
+       0,    75,    76,     0,     0,     0,    93,     0,     0,    94,
+       0,     0,    95,    96,     0,    78,    79,     0,     0,     0,
+       0,     0,    97,    80,    81,     0,     0,     0,    98,     0,
+       0,    82,    83,    99,    84,     0,     0,     0,     0,    85,
+       0,     0,     0,     0,    86,     0,     0,    87,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    88,    89,    73,     0,    74,     0,     0,     0,    90,
+       0,     0,    91,     0,     0,     0,     0,     0,     0,    75,
+     173,     0,    78,    79,     0,     0,     0,    92,     0,     0,
+       0,    81,     0,    78,    79,     0,     0,    93,    82,    83,
+      94,    84,    81,    95,    96,     0,    85,     0,     0,    82,
+      83,     0,    84,    97,    87,     0,     0,    85,     0,    98,
+       0,     0,     0,     0,    99,    87,     0,     0,    88,   277,
+       0,     0,     0,     0,     0,     0,    90,     0,     0,    88,
+      89,     0,     0,     0,     0,     0,     0,    90,     0,     0,
+      91,     0,     0,     0,    92,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    93,    92,     0,     0,     0,     0,
+      95,    96,     0,     0,     0,    93,     0,     0,     0,     0,
+      97,    95,    96,     0,     0,     0,    98,     0,     0,     0,
+       0,    97,     0,     0,     0,     0,     0,    98
 };
 
 static const yytype_int16 yycheck[] =
 {
-       4,   146,    12,   274,   160,   208,   142,    11,    12,    44,
-     138,     4,     8,     6,   246,    29,     8,     4,   146,     6,
-      27,    67,     4,   230,     6,   189,    29,     8,    32,   119,
-      29,    59,    61,    37,    38,    39,    40,    41,     4,     5,
-       6,     7,    39,    31,    72,    80,    23,    24,   235,    21,
-      22,     8,    78,     7,    21,    22,   201,   121,    21,    22,
-      36,    10,    28,     7,    99,    74,    71,    83,    28,   463,
-     160,   199,    60,   201,   230,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    71,    21,    22,   134,     4,
-     121,     6,    21,    22,   488,   121,    50,   106,    58,    65,
-     140,   105,     5,   143,    69,   134,    50,   161,   118,     0,
-     200,   275,   319,   117,   118,    66,   120,    30,   122,   154,
-     125,   114,    61,   177,     3,    45,   125,   162,    94,    95,
-     127,   145,   136,   137,   137,    86,   323,   144,   142,   185,
-     230,   176,    77,    92,   272,   121,   378,   144,   146,   145,
-      70,   144,   423,   145,   282,   283,   160,   144,   186,   362,
-     126,   165,   144,   319,   145,   122,   201,   134,   172,   401,
-     147,   175,   404,   145,   128,     1,   211,     3,   144,   214,
-     145,   384,   145,   103,   128,   189,    33,   191,   192,   193,
-       4,   336,     6,   122,   135,   134,    48,   115,    10,   114,
-       4,   433,     6,   339,   294,   146,    32,   144,   336,   129,
-     145,   246,   114,   349,   106,   118,   119,   252,    53,    33,
-     112,    37,    48,    49,    40,    41,   230,   231,    80,   319,
-      56,   235,    72,    45,    60,    83,   439,    21,    22,    79,
-     396,    76,   140,    55,   142,   104,   250,    87,    21,    22,
-     254,    46,    47,   137,    80,    90,    91,   402,   293,     0,
-     295,    34,   114,     4,    95,   300,     5,   271,   272,   109,
-     144,   275,   307,   135,   402,   411,   412,     7,   113,   105,
-      92,     7,   427,   144,    57,    26,   376,    71,   114,   417,
-     114,   103,    82,    17,    18,    19,   108,   332,   144,   427,
-     116,   311,     5,   138,   130,   145,   396,   311,   132,    46,
-      47,   137,    53,    82,   140,   319,   144,   129,     5,   323,
-     144,   144,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,   477,    21,    22,   339,    71,   341,   146,    72,
-     375,    98,     4,   378,     6,   349,    79,   145,   146,   477,
-       9,    84,   387,    77,    87,     9,   145,   146,   144,    21,
-      22,   365,    21,    22,   145,   146,   401,    21,    22,   404,
-       7,    33,    21,    22,   145,   146,   109,   145,   146,   145,
-     146,   145,   146,   145,   146,   145,   146,   145,   146,    77,
-     145,   146,   396,   529,   145,   146,   145,   146,   433,   144,
-     435,   537,     4,     5,     6,     7,   144,   411,   412,   145,
-     146,   145,   146,   417,   145,   146,     7,   452,     7,    21,
-      22,    23,   145,   146,   145,   146,   145,   146,    11,   144,
-       8,    62,     9,    35,    36,    20,   471,   145,    71,   145,
-     145,    43,    44,   478,   146,    73,    99,   144,   144,    51,
-      52,    85,    54,    85,   131,   144,    58,    59,   132,   463,
-       7,    62,    64,    84,     7,    67,   470,    97,   503,     7,
-      97,    97,    42,    42,   145,    75,    96,   144,   144,    81,
-      82,    27,   146,    92,   488,   137,   144,    89,    85,   144,
-      92,   101,    96,    92,   144,   499,   101,    42,   144,    38,
-     144,    99,     7,    95,   146,   107,    42,   511,    88,    19,
-      42,     7,   136,   108,    93,   117,   145,   110,   120,   144,
-     102,   123,   124,   146,     9,   529,   145,   102,   144,    33,
-     144,   133,   144,   537,    68,    68,   110,   139,     4,     5,
-       6,     7,   144,   145,    10,   100,     7,   198,   368,   145,
-     341,   250,    55,   118,    56,    21,    22,   124,   396,   162,
-     539,   501,   478,   283,   282,   503,   115,   212,   439,    35,
-      36,   212,   166,    -1,    -1,   148,    -1,    43,    44,    -1,
-      -1,   199,   153,   171,    -1,    51,    52,    -1,    54,    -1,
-      -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,
-      -1,    -1,    -1,    89,    -1,    -1,    92,    -1,    -1,     4,
-       5,     6,     7,    -1,    -1,    10,    -1,    -1,    -1,    -1,
-      -1,   107,    -1,    -1,    -1,    -1,    21,    22,   114,    -1,
-      -1,   117,    -1,    -1,   120,    -1,    -1,   123,   124,    -1,
-      35,    36,    -1,    -1,    -1,    -1,    -1,   133,    43,    44,
-      -1,    -1,    -1,   139,    -1,    -1,    51,    52,   144,    54,
-      -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
-      -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    -1,    -1,
-       4,     5,     6,     7,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   107,    -1,    -1,    -1,    -1,    21,    22,    23,
-      -1,    -1,   117,    -1,    -1,   120,    -1,    -1,   123,   124,
-      -1,    35,    36,    -1,    -1,    -1,    -1,    -1,   133,    43,
-      44,    -1,    -1,    -1,   139,    -1,    -1,    51,    52,   144,
-      54,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
-      64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,
-      -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    -1,
-      -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    21,    22,
-      -1,    -1,    -1,   117,    -1,    -1,   120,    -1,    -1,   123,
-     124,    -1,    35,    36,    -1,    -1,    -1,    -1,    -1,   133,
-      43,    44,    -1,    -1,    -1,   139,    -1,    -1,    51,    52,
-     144,    54,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,
-      -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
-      -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,
-      -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,    -1,
-      -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    21,    22,   117,    -1,    -1,   120,    -1,    -1,
-     123,   124,    -1,    -1,    -1,    -1,    35,    36,    -1,    -1,
-     133,   134,    -1,    -1,    43,    44,   139,    -1,    -1,    -1,
-      -1,   144,    51,    52,    -1,    54,    -1,    -1,    -1,    -1,
-      59,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
+       4,   142,    44,    12,   146,   119,   160,    11,    12,   138,
+       8,   275,     4,   208,     6,   247,    59,   146,     7,     7,
+       4,     5,     6,     7,     4,     4,     6,     6,    32,    72,
+      29,     8,    27,    37,    38,    39,    40,    41,    80,     8,
+       8,   189,    23,    24,    28,   231,   160,     4,    39,     6,
+      21,    22,   236,    69,    21,    22,    31,    99,   467,   201,
+      66,    50,    50,   387,    67,    78,     5,    29,    10,   121,
+     199,   135,   201,    21,    22,    29,    28,   231,    61,    30,
+      86,    65,   146,   121,   493,    60,   200,    21,    22,    21,
+      22,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,   105,    21,    22,   140,    71,    58,   143,   121,   118,
+      94,    95,   154,   117,   118,     0,   120,   231,   122,   443,
+     162,    36,   114,    37,   106,    61,    40,    41,   276,   145,
+     112,   134,   136,   137,   176,   321,   127,    71,   142,   128,
+     128,   325,   126,   186,   273,   122,   145,   145,   380,   144,
+      92,   134,   144,   144,   283,   284,   160,   114,    77,   201,
+     144,   165,   426,   125,   144,   144,   147,   321,   172,   364,
+     212,   175,   404,   215,   145,   407,   145,   145,   145,   118,
+     119,   295,   185,   137,    10,   189,   134,   191,   192,   193,
+     122,   386,   387,    53,    46,    47,   338,    45,   134,    83,
+     341,    74,   116,    71,   436,   247,   121,   321,     3,   338,
+     351,   253,   115,     4,    48,     6,    76,     0,   146,    45,
+     114,     4,    70,    17,    18,    19,   145,   231,   232,    55,
+      90,    91,   236,   106,    72,     4,    33,     6,   132,   144,
+     161,    79,    33,    26,   114,   399,    80,   251,   443,    87,
+     144,   255,   294,   113,   296,   103,   177,   125,    83,   140,
+     302,   142,   104,   405,   378,   137,    92,   309,   272,   273,
+      53,   109,   276,   414,   415,     5,   405,   103,   138,    95,
+     114,   129,   108,    77,   135,   399,   144,    72,   430,    46,
+      47,   420,   334,     9,    79,    21,    22,   144,     9,    84,
+      82,   430,    87,   129,   313,    21,    22,   145,    34,   313,
+      21,    22,   145,   146,   145,   146,     7,   321,   145,   146,
+       7,   325,    21,    22,   109,   145,   146,     4,     5,     6,
+       7,    57,     4,   144,     6,   377,     5,   341,   380,   343,
+     482,   145,   146,   144,    21,    22,    23,   351,   390,    21,
+      22,   144,     5,   482,    82,   145,   146,   146,    35,    36,
+      98,    33,   404,   367,   144,   407,    43,    44,   145,   146,
+     145,   146,   145,   146,    51,    52,    71,    54,   145,   146,
+       7,    58,    59,   145,   146,   145,   146,    64,   144,   144,
+      67,   145,   146,   534,   436,   399,   438,   145,   146,   145,
+     146,   542,   145,   146,    81,    82,     1,     7,     3,     7,
+     414,   415,    89,   144,   456,    92,   420,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    11,    21,    22,
+     107,   145,   146,   475,     8,   145,   146,    32,   145,   146,
+     117,   483,     9,   120,   145,   146,   123,   124,    20,   146,
+      62,   145,    71,    48,    49,   145,   133,   146,    73,    99,
+     145,    56,   139,   467,   144,    60,   508,   144,   145,    85,
+     474,    85,   131,   144,     4,     5,     6,     7,   144,   144,
+      10,   132,    62,     7,    77,    80,    97,    97,    97,   493,
+      84,    21,    22,     7,     7,    42,    75,    42,   145,    96,
+     504,   144,   144,   137,    27,    35,    36,   146,   144,    92,
+     105,   144,   516,    43,    44,    85,    92,    42,   144,   114,
+     101,    51,    52,   101,    54,    96,   144,    38,     7,    59,
+     534,    99,    95,    63,    64,   130,   144,    67,   542,   146,
+      42,    19,   137,   144,    88,   140,    42,     7,   136,   145,
+     108,    81,    82,    93,   146,   145,   102,   110,     9,    89,
+     102,    33,    92,    68,    68,     4,     5,     6,     7,   144,
+       7,    10,   110,   100,   198,   144,   251,   107,   144,   343,
+     145,    55,    21,    22,   114,   118,   370,   117,   124,    56,
+     120,   399,   483,   123,   124,   506,    35,    36,   162,   544,
+     508,   283,   153,   133,    43,    44,   284,   166,   199,   139,
+     171,   213,    51,    52,   144,    54,   115,   148,    -1,    -1,
+      59,    -1,    -1,    -1,    63,    64,   213,    -1,    67,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,
       89,    -1,    -1,    92,    -1,    -1,     4,     5,     6,     7,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,
-      -1,    -1,    -1,    21,    22,   114,    -1,    -1,   117,    -1,
+      -1,    -1,    -1,    21,    22,    23,    -1,    -1,   117,    -1,
       -1,   120,    -1,    -1,   123,   124,    -1,    35,    36,    -1,
       -1,    -1,    -1,    -1,   133,    43,    44,    -1,    -1,    -1,
      139,    -1,    -1,    51,    52,   144,    54,    -1,    -1,    -1,
-      -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    67,
+      -1,    59,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
       -1,    89,    -1,    -1,    92,    -1,    -1,     4,     5,     6,
@@ -1344,29 +1310,56 @@
       -1,    -1,    59,    -1,    -1,    -1,    -1,    64,    -1,    -1,
       67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
-      -1,    -1,    89,    -1,    -1,    92,    -1,    -1,     4,     5,
-       6,     7,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     107,    -1,    -1,    -1,    -1,    21,    22,    -1,    -1,    -1,
-     117,    -1,    -1,   120,    -1,    -1,   123,   124,    -1,    35,
-      36,    -1,    -1,    -1,    -1,    -1,   133,    43,    44,    -1,
-      -1,    -1,   139,    -1,    -1,    51,    52,   144,    54,    -1,
-      -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    64,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    81,    82,     5,    -1,     7,
-      -1,    -1,    -1,    89,    -1,    -1,    92,    -1,    -1,    -1,
-      -1,    -1,    -1,    21,    22,    -1,    35,    36,    -1,    -1,
-      -1,   107,    -1,    -1,    -1,    44,    -1,    35,    36,    -1,
-      -1,   117,    51,    52,   120,    54,    44,   123,   124,    -1,
-      59,    -1,    -1,    51,    52,    -1,    54,   133,    67,    -1,
-      -1,    59,    -1,   139,    -1,    -1,    -1,    -1,   144,    67,
-      -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,
-      89,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
-      -1,    89,    -1,    -1,    92,    -1,    -1,    -1,   107,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   107,
-      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,   117,
-      -1,    -1,    -1,    -1,   133,   123,   124,    -1,    -1,    -1,
-     139,    -1,    -1,    -1,    -1,   133,    -1,    -1,    -1,    -1,
-      -1,   139
+      -1,    -1,    89,    -1,    -1,    92,    -1,    -1,    -1,    -1,
+      -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    -1,
+     107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
+     117,    -1,    -1,   120,    -1,    -1,   123,   124,    -1,    -1,
+      -1,    -1,    35,    36,    -1,    -1,   133,   134,    -1,    -1,
+      43,    44,   139,    -1,    -1,    -1,    -1,   144,    51,    52,
+      -1,    54,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,
+      -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
+      -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,
+      -1,    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    21,
+      22,   114,    -1,    -1,   117,    -1,    -1,   120,    -1,    -1,
+     123,   124,    -1,    35,    36,    -1,    -1,    -1,    -1,    -1,
+     133,    43,    44,    -1,    -1,    -1,   139,    -1,    -1,    51,
+      52,   144,    54,    -1,    -1,    -1,    -1,    59,    -1,    -1,
+      -1,    63,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
+      82,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
+      92,    -1,    -1,     4,     5,     6,     7,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,
+      21,    22,    -1,    -1,    -1,   117,    -1,    -1,   120,    -1,
+      -1,   123,   124,    -1,    35,    36,    -1,    -1,    -1,    -1,
+      -1,   133,    43,    44,    -1,    -1,    -1,   139,    -1,    -1,
+      51,    52,   144,    54,    -1,    -1,    -1,    -1,    59,    -1,
+      -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      81,    82,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
+      -1,    92,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,
+      -1,    21,    22,    -1,    -1,    -1,   117,    -1,    -1,   120,
+      -1,    -1,   123,   124,    -1,    35,    36,    -1,    -1,    -1,
+      -1,    -1,   133,    43,    44,    -1,    -1,    -1,   139,    -1,
+      -1,    51,    52,   144,    54,    -1,    -1,    -1,    -1,    59,
+      -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    81,    82,     5,    -1,     7,    -1,    -1,    -1,    89,
+      -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    21,
+      22,    -1,    35,    36,    -1,    -1,    -1,   107,    -1,    -1,
+      -1,    44,    -1,    35,    36,    -1,    -1,   117,    51,    52,
+     120,    54,    44,   123,   124,    -1,    59,    -1,    -1,    51,
+      52,    -1,    54,   133,    67,    -1,    -1,    59,    -1,   139,
+      -1,    -1,    -1,    -1,   144,    67,    -1,    -1,    81,    82,
+      -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    81,
+      82,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
+      92,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   117,   107,    -1,    -1,    -1,    -1,
+     123,   124,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,
+     133,   123,   124,    -1,    -1,    -1,   139,    -1,    -1,    -1,
+      -1,   133,    -1,    -1,    -1,    -1,    -1,   139
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1376,58 +1369,59 @@
        0,     1,     3,    32,    48,    49,    56,    60,    80,   105,
      114,   130,   137,   140,   149,   150,   151,   152,   153,   154,
      155,   177,   178,   181,   182,   185,   187,   190,   191,   192,
-     256,   257,   121,     4,     6,   190,   254,    78,   121,    71,
-     121,    83,    28,    58,   193,   254,   188,   189,   204,   254,
+     257,   258,   121,     4,     6,   190,   255,    78,   121,    71,
+     121,    83,    28,    58,   193,   255,   188,   189,   204,   255,
        0,   140,   142,    48,    80,   190,    29,   137,   186,    30,
-     140,   143,     3,   254,   125,   179,    71,   179,   254,   254,
-     254,   254,   254,     5,     7,    21,    22,    23,    35,    36,
+     140,   143,     3,   255,   125,   179,    71,   179,   255,   255,
+     255,   255,   255,     5,     7,    21,    22,    23,    35,    36,
       43,    44,    51,    52,    54,    59,    64,    67,    81,    82,
       89,    92,   107,   117,   120,   123,   124,   133,   139,   144,
      158,   194,   195,   196,   198,   230,   231,   232,   233,   234,
-     235,   236,   237,   244,   247,   250,   254,   115,   146,    33,
+     235,   236,   237,   244,   248,   251,   255,   115,   146,    33,
      144,   190,    83,   186,   193,   104,   192,    31,    60,     5,
      118,   119,   137,   180,     5,   180,    95,   144,   135,   224,
      225,   132,   144,   192,     7,     7,   134,   230,   240,   241,
      144,    82,   144,     5,   144,   144,    82,   190,   230,     5,
-      71,   197,   146,    21,    22,    33,   251,   254,    23,    24,
-     147,   252,    98,    22,   233,    27,   144,   183,   184,   254,
-     189,   144,   198,   253,   254,   179,   254,   191,     7,    46,
-      47,    46,    47,   144,   180,   254,   156,   157,   254,    10,
-      63,   144,   226,   227,   228,   229,   230,   247,   144,   253,
-     226,   134,   238,   239,    61,   241,   242,     7,    53,    76,
-      90,    91,   113,   138,   245,   245,   230,     7,   145,   145,
-     144,   198,   201,   202,   205,   234,   254,   224,   196,   254,
-     231,   232,   144,   254,   254,    23,    58,   145,   230,   243,
-     146,   224,    11,   145,   146,   180,   192,   156,    45,    70,
-     103,   129,   162,   254,   254,   169,   170,   171,   172,   173,
-     174,   254,   144,   165,   145,   146,    82,   158,   229,   198,
-     226,   230,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    77,   249,    20,   244,   246,   145,
-     122,   230,   239,   242,   230,    62,   145,    71,    71,   145,
-     201,    33,   203,   204,    72,    79,    87,   109,   200,   146,
-     203,    39,   127,   199,    73,   206,    99,   213,   214,   145,
-     243,   145,   146,   184,   230,   254,   144,    85,    85,   144,
-     145,   146,     5,     7,    28,    65,    94,    95,   126,   144,
-     254,   255,   247,   248,   254,   131,   162,   163,   164,   156,
-      10,    45,    55,    92,   103,   108,   129,   159,   160,   161,
-     145,   227,   228,    17,    18,    19,    77,   230,   144,   198,
-     230,    10,    92,   145,   146,   132,   230,   122,    62,   230,
-       7,   145,   204,    97,    97,    97,    84,   201,     7,     7,
-     203,    42,    75,   207,    42,   145,    96,   215,   145,   230,
-     226,   144,   144,   253,   170,   253,   145,   146,    37,    40,
-      41,   116,   175,   146,   137,   166,    92,   144,   244,    85,
-     254,   159,   230,   144,   198,     9,   243,    92,   244,   144,
-     230,   145,    69,   145,   202,   101,   101,   243,   226,    96,
-     208,   243,    42,   106,   112,   216,   217,   145,   253,   253,
-     145,   145,   247,   144,   176,   162,    38,    99,   167,   226,
-     144,     9,   243,   230,   145,   246,     7,    95,    42,    88,
-     209,   220,   221,   230,    19,   145,   145,   169,   144,    42,
-     145,   254,   230,   145,   145,   145,   226,   220,     7,   136,
-     210,   211,   212,   146,    34,    57,   222,     7,    50,   128,
-     218,   108,   145,   169,    74,   106,   168,   145,   254,   212,
-     221,    93,   223,   102,   110,   102,     9,   254,   145,   144,
-      33,    66,    86,     7,    50,   128,   219,   144,   253,   144,
-      68,   110,    68,   253,   145,   213,   145,   100,   145,     7
+      71,   197,   146,    21,    22,    33,   252,   255,    23,    24,
+     147,   253,    98,    22,   233,    27,   144,   183,   184,   255,
+     189,   144,   198,   254,   255,   179,   255,   191,     7,    46,
+      47,    46,    47,   144,   180,   255,   156,   157,   255,    10,
+      63,   144,   226,   227,   228,   229,   230,   248,   144,   247,
+     254,   226,   134,   238,   239,    61,   241,   242,     7,    53,
+      76,    90,    91,   113,   138,   245,   245,   230,     7,   145,
+     145,   144,   198,   201,   202,   205,   234,   255,   224,   196,
+     255,   231,   232,   144,   255,   255,    23,    58,   145,   230,
+     243,   146,   224,    11,   145,   146,   180,   192,   156,    45,
+      70,   103,   129,   162,   255,   255,   169,   170,   171,   172,
+     173,   174,   255,   144,   165,   145,   146,    82,   158,   229,
+     198,   226,   230,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    77,   250,    20,   244,   246,
+     146,   145,   122,   230,   239,   242,   230,    62,   145,    71,
+      71,   145,   201,    33,   203,   204,    72,    79,    87,   109,
+     200,   146,   203,    39,   127,   199,    73,   206,    99,   213,
+     214,   145,   243,   145,   146,   184,   230,   255,   144,    85,
+      85,   144,   145,   146,     5,     7,    28,    65,    94,    95,
+     126,   144,   255,   256,   248,   249,   255,   131,   162,   163,
+     164,   156,    10,    45,    55,    92,   103,   108,   129,   159,
+     160,   161,   145,   227,   228,    17,    18,    19,    77,   230,
+     144,   198,   230,    10,    92,   145,   146,   144,   132,   230,
+     122,    62,   230,     7,   145,   204,    97,    97,    97,    84,
+     201,     7,     7,   203,    42,    75,   207,    42,   145,    96,
+     215,   145,   230,   226,   144,   144,   254,   170,   254,   145,
+     146,    37,    40,    41,   116,   175,   146,   137,   166,    92,
+     144,   244,    85,   255,   159,   230,   144,   198,     9,   243,
+      92,   244,   246,   144,   230,   145,    69,   145,   202,   101,
+     101,   243,   226,    96,   208,   243,    42,   106,   112,   216,
+     217,   145,   254,   254,   145,   145,   248,   144,   176,   162,
+      38,    99,   167,   226,   144,     9,   243,   230,   145,   145,
+     246,     7,    95,    42,    88,   209,   220,   221,   230,    19,
+     145,   145,   169,   144,    42,   145,   255,   230,   145,   145,
+     145,   226,   220,     7,   136,   210,   211,   212,   146,    34,
+      57,   222,     7,    50,   128,   218,   108,   145,   169,    74,
+     106,   168,   145,   255,   212,   221,    93,   223,   102,   110,
+     102,     9,   255,   145,   144,    33,    66,    86,     7,    50,
+     128,   219,   144,   254,   144,    68,   110,    68,   254,   145,
+     213,   145,   100,   145,     7
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1460,9 +1454,10 @@
      237,   237,   238,   238,   239,   240,   240,   241,   242,   242,
      243,   243,   244,   244,   244,   244,   244,   244,   244,   244,
      245,   245,   245,   245,   245,   245,   246,   246,   247,   247,
-     248,   248,   249,   249,   249,   249,   249,   249,   249,   249,
-     249,   249,   250,   251,   251,   252,   252,   252,   253,   253,
-     254,   254,   255,   255,   255,   255,   256,   257,   257
+     248,   248,   249,   249,   250,   250,   250,   250,   250,   250,
+     250,   250,   250,   250,   251,   252,   252,   253,   253,   253,
+     254,   254,   255,   255,   256,   256,   256,   256,   257,   258,
+     258
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1477,7 +1472,7 @@
       10,     4,     3,     1,     0,     1,     0,     3,     0,     5,
        0,     8,     1,     1,     1,     3,     1,     1,     1,     1,
        2,     2,     2,     4,     2,     2,     1,     1,     1,     1,
-       0,     3,    10,     7,     4,     5,     5,     4,     4,     5,
+       0,     3,    10,     5,     4,     5,     5,     4,     4,     5,
        2,     2,     2,     0,     4,     5,     4,     3,     1,     3,
        2,     3,     0,     3,     2,     1,     3,     3,     4,     1,
        3,     1,    10,     0,     1,     1,     1,     1,     1,     3,
@@ -1494,10 +1489,11 @@
        1,     3,     1,     3,     4,     4,     5,     6,     6,     8,
        5,     4,     1,     2,     4,     1,     2,     4,     0,     2,
        1,     3,     1,     1,     2,     2,     1,     2,     3,     2,
-       1,     1,     1,     1,     1,     1,     1,     3,     1,     3,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     2,
-       1,     2,     1,     1,     1,     1,     1,     1,     1,     3,
-       1,     1,     1,     1,     1,     1,     2,     2,     0
+       1,     1,     1,     1,     1,     1,     1,     3,     3,     5,
+       1,     3,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     2,     1,     2,     1,     1,     1,     1,     1,     1,
+       1,     3,     1,     1,     1,     1,     1,     1,     2,     2,
+       0
 };
 
 
@@ -1994,1071 +1990,1081 @@
   switch (yytype)
     {
           case 3: /* TOKEN_COMMAND  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2004 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2000 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 4: /* TOKEN_NAME  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2014 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2010 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 5: /* TOKEN_STRING_SINGLE_QUOTED  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2024 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2020 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 6: /* TOKEN_STRING_DOUBLE_QUOTED  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2034 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2030 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 7: /* TOKEN_UNSIGNED_NUMVAL  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).numeric_literal_value_) != nullptr) {
     delete ((*yyvaluep).numeric_literal_value_);
   }
 }
-#line 2044 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2040 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 150: /* sql_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).statement_) != nullptr) {
     delete ((*yyvaluep).statement_);
   }
 }
-#line 2054 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2050 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 151: /* quit_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).quit_statement_) != nullptr) {
     delete ((*yyvaluep).quit_statement_);
   }
 }
-#line 2064 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2060 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 152: /* alter_table_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).statement_) != nullptr) {
     delete ((*yyvaluep).statement_);
   }
 }
-#line 2074 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2070 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 153: /* create_table_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).create_table_statement_) != nullptr) {
     delete ((*yyvaluep).create_table_statement_);
   }
 }
-#line 2084 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2080 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 154: /* create_index_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).statement_) != nullptr) {
     delete ((*yyvaluep).statement_);
   }
 }
-#line 2094 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2090 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 155: /* drop_table_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).drop_table_statement_) != nullptr) {
     delete ((*yyvaluep).drop_table_statement_);
   }
 }
-#line 2104 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2100 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 156: /* column_def  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_definition_) != nullptr) {
     delete ((*yyvaluep).attribute_definition_);
   }
 }
-#line 2114 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2110 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 157: /* column_def_commalist  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_definition_list_) != nullptr) {
     delete ((*yyvaluep).attribute_definition_list_);
   }
 }
-#line 2124 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2120 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 158: /* data_type  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).data_type_) != nullptr) {
     delete ((*yyvaluep).data_type_);
   }
 }
-#line 2134 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2130 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 159: /* column_constraint_def  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).column_constraint_) != nullptr) {
     delete ((*yyvaluep).column_constraint_);
   }
 }
-#line 2144 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2140 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 160: /* column_constraint_def_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).column_constraint_list_) != nullptr) {
     delete ((*yyvaluep).column_constraint_list_);
   }
 }
-#line 2154 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2150 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 161: /* opt_column_constraint_def_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).column_constraint_list_) != nullptr) {
     delete ((*yyvaluep).column_constraint_list_);
   }
 }
-#line 2164 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2160 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 165: /* opt_column_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_list_) != nullptr) {
     delete ((*yyvaluep).attribute_list_);
   }
 }
-#line 2174 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2170 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 166: /* opt_block_properties  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).block_properties_) != nullptr) {
     delete ((*yyvaluep).block_properties_);
   }
 }
-#line 2184 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2180 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 167: /* opt_partition_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).partition_clause_) != nullptr) {
     delete ((*yyvaluep).partition_clause_);
   }
 }
-#line 2194 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2190 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 168: /* partition_type  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2204 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2200 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 169: /* key_value_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_list_) != nullptr) {
     delete ((*yyvaluep).key_value_list_);
   }
 }
-#line 2214 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2210 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 170: /* key_value  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_) != nullptr) {
     delete ((*yyvaluep).key_value_);
   }
 }
-#line 2224 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2220 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 171: /* key_string_value  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_string_value_) != nullptr) {
     delete ((*yyvaluep).key_string_value_);
   }
 }
-#line 2234 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2230 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 172: /* key_string_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_string_list_) != nullptr) {
     delete ((*yyvaluep).key_string_list_);
   }
 }
-#line 2244 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2240 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 173: /* key_integer_value  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_integer_value_) != nullptr) {
     delete ((*yyvaluep).key_integer_value_);
   }
 }
-#line 2254 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2250 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 174: /* key_bool_value  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_bool_value_) != nullptr) {
     delete ((*yyvaluep).key_bool_value_);
   }
 }
-#line 2264 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2260 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 175: /* index_type  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2274 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2270 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 176: /* opt_index_properties  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_list_) != nullptr) {
     delete ((*yyvaluep).key_value_list_);
   }
 }
-#line 2284 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2280 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 177: /* insert_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).insert_statement_) != nullptr) {
     delete ((*yyvaluep).insert_statement_);
   }
 }
-#line 2294 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2290 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 178: /* copy_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).copy_statement_) != nullptr) {
     delete ((*yyvaluep).copy_statement_);
   }
 }
-#line 2304 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2300 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 179: /* copy_to_target  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2314 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2310 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 180: /* opt_copy_params  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_list_) != nullptr) {
     delete ((*yyvaluep).key_value_list_);
   }
 }
-#line 2324 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2320 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 181: /* update_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).update_statement_) != nullptr) {
     delete ((*yyvaluep).update_statement_);
   }
 }
-#line 2334 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2330 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 182: /* delete_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).delete_statement_) != nullptr) {
     delete ((*yyvaluep).delete_statement_);
   }
 }
-#line 2344 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2340 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 183: /* assignment_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).assignment_list_) != nullptr) {
     delete ((*yyvaluep).assignment_list_);
   }
 }
-#line 2354 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2350 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 184: /* assignment_item  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).assignment_) != nullptr) {
     delete ((*yyvaluep).assignment_);
   }
 }
-#line 2364 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2360 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 185: /* set_operation_statement  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).set_operation_statement_) != nullptr) {
     delete ((*yyvaluep).set_operation_statement_);
   }
 }
-#line 2374 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2370 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 186: /* opt_priority_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_priority_clause_) != nullptr) {
     delete ((*yyvaluep).opt_priority_clause_);
   }
 }
-#line 2384 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2380 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 187: /* with_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).with_list_) != nullptr) {
     delete ((*yyvaluep).with_list_);
   }
 }
-#line 2394 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2390 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 188: /* with_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).with_list_) != nullptr) {
     delete ((*yyvaluep).with_list_);
   }
 }
-#line 2404 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2400 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 189: /* with_list_element  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).with_list_element_) != nullptr) {
     delete ((*yyvaluep).with_list_element_);
   }
 }
-#line 2414 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2410 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 190: /* set_operation_union  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).set_operation_) != nullptr) {
     delete ((*yyvaluep).set_operation_);
   }
 }
-#line 2424 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2420 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 191: /* set_operation_intersect  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).set_operation_) != nullptr) {
     delete ((*yyvaluep).set_operation_);
   }
 }
-#line 2434 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2430 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 192: /* select_query  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).select_query_) != nullptr) {
     delete ((*yyvaluep).select_query_);
   }
 }
-#line 2444 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2440 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 193: /* opt_all_distinct  */
-#line 625 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 629 "../SqlParser.ypp" /* yacc.c:1257  */
       { }
-#line 2450 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2446 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 194: /* selection  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).selection_) != nullptr) {
     delete ((*yyvaluep).selection_);
   }
 }
-#line 2460 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2456 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 195: /* selection_item_commalist  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).selection_list_) != nullptr) {
     delete ((*yyvaluep).selection_list_);
   }
 }
-#line 2470 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2466 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 196: /* selection_item  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).selection_item_) != nullptr) {
     delete ((*yyvaluep).selection_item_);
   }
 }
-#line 2480 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2476 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 197: /* from_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).table_reference_list_) != nullptr) {
     delete ((*yyvaluep).table_reference_list_);
   }
 }
-#line 2490 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2486 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 198: /* subquery_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).subquery_expression_) != nullptr) {
     delete ((*yyvaluep).subquery_expression_);
   }
 }
-#line 2500 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2496 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 199: /* opt_sample_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_sample_clause_) != nullptr) {
     delete ((*yyvaluep).opt_sample_clause_);
   }
 }
-#line 2510 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2506 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 200: /* join_type  */
-#line 629 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 633 "../SqlParser.ypp" /* yacc.c:1257  */
       { }
-#line 2516 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2512 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 201: /* joined_table_reference  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).table_reference_) != nullptr) {
     delete ((*yyvaluep).table_reference_);
   }
 }
-#line 2526 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2522 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 202: /* table_reference  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).table_reference_) != nullptr) {
     delete ((*yyvaluep).table_reference_);
   }
 }
-#line 2536 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2532 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 203: /* table_reference_signature  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).table_reference_signature_) != nullptr) {
     delete ((*yyvaluep).table_reference_signature_);
   }
 }
-#line 2546 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2542 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 204: /* table_reference_signature_primary  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).table_reference_signature_) != nullptr) {
     delete ((*yyvaluep).table_reference_signature_);
   }
 }
-#line 2556 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2552 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 205: /* joined_table_reference_commalist  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).table_reference_list_) != nullptr) {
     delete ((*yyvaluep).table_reference_list_);
   }
 }
-#line 2566 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2562 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 206: /* opt_group_by_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_group_by_clause_) != nullptr) {
     delete ((*yyvaluep).opt_group_by_clause_);
   }
 }
-#line 2576 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2572 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 207: /* opt_having_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_having_clause_) != nullptr) {
     delete ((*yyvaluep).opt_having_clause_);
   }
 }
-#line 2586 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2582 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 208: /* opt_order_by_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_order_by_clause_) != nullptr) {
     delete ((*yyvaluep).opt_order_by_clause_);
   }
 }
-#line 2596 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2592 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 209: /* opt_limit_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_limit_clause_) != nullptr) {
     delete ((*yyvaluep).opt_limit_clause_);
   }
 }
-#line 2606 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2602 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 210: /* opt_window_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_window_clause_) != nullptr) {
     delete ((*yyvaluep).opt_window_clause_);
   }
 }
-#line 2616 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2612 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 211: /* window_declaration_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).opt_window_clause_) != nullptr) {
     delete ((*yyvaluep).opt_window_clause_);
   }
 }
-#line 2626 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2622 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 212: /* window_declaration  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).window_definition_) != nullptr) {
     delete ((*yyvaluep).window_definition_);
   }
 }
-#line 2636 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2632 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 213: /* window_definition  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).window_definition_) != nullptr) {
     delete ((*yyvaluep).window_definition_);
   }
 }
-#line 2646 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2642 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 214: /* opt_window_partition  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).window_partition_by_list_) != nullptr) {
     delete ((*yyvaluep).window_partition_by_list_);
   }
 }
-#line 2656 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2652 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 215: /* opt_window_order  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).window_order_by_list_) != nullptr) {
     delete ((*yyvaluep).window_order_by_list_);
   }
 }
-#line 2666 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2662 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 216: /* opt_window_frame  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).window_frame_info_) != nullptr) {
     delete ((*yyvaluep).window_frame_info_);
   }
 }
-#line 2676 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2672 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 217: /* frame_mode  */
-#line 625 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 629 "../SqlParser.ypp" /* yacc.c:1257  */
       { }
-#line 2682 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2678 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 218: /* frame_preceding  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).numeric_literal_value_) != nullptr) {
     delete ((*yyvaluep).numeric_literal_value_);
   }
 }
-#line 2692 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2688 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 219: /* frame_following  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).numeric_literal_value_) != nullptr) {
     delete ((*yyvaluep).numeric_literal_value_);
   }
 }
-#line 2702 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2698 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 220: /* order_commalist  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).order_commalist_) != nullptr) {
     delete ((*yyvaluep).order_commalist_);
   }
 }
-#line 2712 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2708 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 221: /* order_item  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).order_item_) != nullptr) {
     delete ((*yyvaluep).order_item_);
   }
 }
-#line 2722 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2718 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 222: /* opt_order_direction  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).order_direction_) != nullptr) {
     delete ((*yyvaluep).order_direction_);
   }
 }
-#line 2732 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2728 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 223: /* opt_nulls_first  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).order_direction_) != nullptr) {
     delete ((*yyvaluep).order_direction_);
   }
 }
-#line 2742 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2738 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 224: /* opt_where_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).predicate_) != nullptr) {
     delete ((*yyvaluep).predicate_);
   }
 }
-#line 2752 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2748 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 225: /* where_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).predicate_) != nullptr) {
     delete ((*yyvaluep).predicate_);
   }
 }
-#line 2762 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2758 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 226: /* or_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).predicate_) != nullptr) {
     delete ((*yyvaluep).predicate_);
   }
 }
-#line 2772 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2768 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 227: /* and_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).predicate_) != nullptr) {
     delete ((*yyvaluep).predicate_);
   }
 }
-#line 2782 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2778 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 228: /* not_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).predicate_) != nullptr) {
     delete ((*yyvaluep).predicate_);
   }
 }
-#line 2792 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2788 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 229: /* predicate_expression_base  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).predicate_) != nullptr) {
     delete ((*yyvaluep).predicate_);
   }
 }
-#line 2802 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2798 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 230: /* add_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2812 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2808 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 231: /* multiply_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2822 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2818 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 232: /* unary_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2832 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2828 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 233: /* expression_base  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2842 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2838 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 234: /* function_call  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).function_call_) != nullptr) {
     delete ((*yyvaluep).function_call_);
   }
 }
-#line 2852 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2848 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 235: /* extract_function  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2862 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2858 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 236: /* substr_function  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2872 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2868 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 237: /* case_expression  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2882 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2878 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 238: /* simple_when_clause_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).simple_when_clause_list_) != nullptr) {
     delete ((*yyvaluep).simple_when_clause_list_);
   }
 }
-#line 2892 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2888 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 239: /* simple_when_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).simple_when_clause_) != nullptr) {
     delete ((*yyvaluep).simple_when_clause_);
   }
 }
-#line 2902 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2898 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 240: /* searched_when_clause_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).searched_when_clause_list_) != nullptr) {
     delete ((*yyvaluep).searched_when_clause_list_);
   }
 }
-#line 2912 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2908 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 241: /* searched_when_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).searched_when_clause_) != nullptr) {
     delete ((*yyvaluep).searched_when_clause_);
   }
 }
-#line 2922 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2918 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 242: /* opt_else_clause  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_) != nullptr) {
     delete ((*yyvaluep).expression_);
   }
 }
-#line 2932 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2928 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 243: /* expression_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).expression_list_) != nullptr) {
     delete ((*yyvaluep).expression_list_);
   }
 }
-#line 2942 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2938 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 244: /* literal_value  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).literal_value_) != nullptr) {
     delete ((*yyvaluep).literal_value_);
   }
 }
-#line 2952 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2948 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 245: /* datetime_unit  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2962 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2958 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 246: /* literal_value_commalist  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).literal_value_list_) != nullptr) {
     delete ((*yyvaluep).literal_value_list_);
   }
 }
-#line 2972 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2968 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 247: /* attribute_ref  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 247: /* literal_value_commalist_multiple  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
+      {
+  if (((*yyvaluep).literal_value_list_multiple_) != nullptr) {
+    delete ((*yyvaluep).literal_value_list_multiple_);
+  }
+}
+#line 2978 "SqlParser_gen.cpp" /* yacc.c:1257  */
+        break;
+
+    case 248: /* attribute_ref  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_) != nullptr) {
     delete ((*yyvaluep).attribute_);
   }
 }
-#line 2982 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2988 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 248: /* attribute_ref_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 249: /* attribute_ref_list  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_list_) != nullptr) {
     delete ((*yyvaluep).attribute_list_);
   }
 }
-#line 2992 "SqlParser_gen.cpp" /* yacc.c:1257  */
-        break;
-
-    case 249: /* comparison_operation  */
-#line 626 "../SqlParser.ypp" /* yacc.c:1257  */
-      { }
 #line 2998 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 250: /* unary_operation  */
-#line 627 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 250: /* comparison_operation  */
+#line 630 "../SqlParser.ypp" /* yacc.c:1257  */
       { }
 #line 3004 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 251: /* add_operation  */
-#line 628 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 251: /* unary_operation  */
+#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
       { }
 #line 3010 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 252: /* multiply_operation  */
-#line 628 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 252: /* add_operation  */
+#line 632 "../SqlParser.ypp" /* yacc.c:1257  */
       { }
 #line 3016 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 253: /* name_commalist  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 253: /* multiply_operation  */
+#line 632 "../SqlParser.ypp" /* yacc.c:1257  */
+      { }
+#line 3022 "SqlParser_gen.cpp" /* yacc.c:1257  */
+        break;
+
+    case 254: /* name_commalist  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_list_) != nullptr) {
     delete ((*yyvaluep).string_list_);
   }
 }
-#line 3026 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 3032 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 254: /* any_name  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 255: /* any_name  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 3036 "SqlParser_gen.cpp" /* yacc.c:1257  */
-        break;
-
-    case 255: /* boolean_value  */
-#line 625 "../SqlParser.ypp" /* yacc.c:1257  */
-      { }
 #line 3042 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 256: /* command  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 256: /* boolean_value  */
+#line 629 "../SqlParser.ypp" /* yacc.c:1257  */
+      { }
+#line 3048 "SqlParser_gen.cpp" /* yacc.c:1257  */
+        break;
+
+    case 257: /* command  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).command_) != nullptr) {
     delete ((*yyvaluep).command_);
   }
 }
-#line 3052 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 3058 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 257: /* command_argument_list  */
-#line 631 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 258: /* command_argument_list  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).command_argument_list_) != nullptr) {
     delete ((*yyvaluep).command_argument_list_);
   }
 }
-#line 3062 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 3068 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
 
@@ -3350,148 +3356,148 @@
   switch (yyn)
     {
         case 2:
-#line 640 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    *parsedStatement = (yyvsp[-1].statement_);
-    YYACCEPT;
-  }
-#line 3359 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 3:
 #line 644 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     *parsedStatement = (yyvsp[-1].statement_);
     YYACCEPT;
   }
-#line 3368 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3365 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 3:
+#line 648 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    *parsedStatement = (yyvsp[-1].statement_);
+    YYACCEPT;
+  }
+#line 3374 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 4:
-#line 648 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    *parsedStatement = (yyvsp[-1].command_);
-    YYACCEPT;
-  }
-#line 3377 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 5:
 #line 652 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     *parsedStatement = (yyvsp[-1].command_);
     YYACCEPT;
   }
-#line 3386 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3383 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 5:
+#line 656 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    *parsedStatement = (yyvsp[-1].command_);
+    YYACCEPT;
+  }
+#line 3392 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 6:
-#line 656 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 660 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     YYABORT;
   }
-#line 3394 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3400 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 7:
-#line 659 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 663 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     // Regular yyparse() return codes are non-negative, so use a negative one here.
     return -1;
   }
-#line 3403 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3409 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 8:
-#line 666 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 670 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].statement_);
   }
-#line 3411 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3417 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 9:
-#line 669 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 673 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].copy_statement_);
   }
-#line 3419 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3425 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 10:
-#line 672 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 676 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].create_table_statement_);
   }
-#line 3427 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3433 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 11:
-#line 675 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 679 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].statement_);
   }
-#line 3435 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3441 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 12:
-#line 678 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 682 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].delete_statement_);
   }
-#line 3443 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3449 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 13:
-#line 681 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 685 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].drop_table_statement_);
   }
-#line 3451 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3457 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 14:
-#line 684 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 688 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].insert_statement_);
   }
-#line 3459 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3465 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 15:
-#line 687 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 691 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].quit_statement_);
   }
-#line 3467 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3473 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 16:
-#line 690 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 694 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].set_operation_statement_);
   }
-#line 3475 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3481 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 17:
-#line 693 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 697 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.statement_) = (yyvsp[0].update_statement_);
   }
-#line 3483 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3489 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 18:
-#line 699 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 703 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.quit_statement_) = new quickstep::ParseStatementQuit((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 3491 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3497 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 19:
-#line 705 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 709 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-3].string_value_);
     delete (yyvsp[0].attribute_definition_);
@@ -3499,22 +3505,22 @@
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3503 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3509 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 20:
-#line 712 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 716 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-3].string_value_);
     (yyval.statement_) = nullptr;
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3514 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3520 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 21:
-#line 718 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 722 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-3].string_value_);
     delete (yyvsp[0].string_value_);
@@ -3522,11 +3528,11 @@
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3526 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3532 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 22:
-#line 725 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 729 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-3].string_value_);
     delete (yyvsp[0].string_value_);
@@ -3534,19 +3540,19 @@
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3538 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3544 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 23:
-#line 734 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 738 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.create_table_statement_) = new quickstep::ParseStatementCreateTable((yylsp[-8]).first_line, (yylsp[-8]).first_column, (yyvsp[-6].string_value_), (yyvsp[-4].attribute_definition_list_), (yyvsp[-1].block_properties_), (yyvsp[0].partition_clause_));
   }
-#line 3546 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3552 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 24:
-#line 739 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 743 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[0].key_value_list_)) {
       (yyval.statement_) = new quickstep::ParseStatementCreateIndex((yylsp[-8]).first_line, (yylsp[-8]).first_column, (yyvsp[-6].string_value_), (yyvsp[-4].string_value_), (yyvsp[-3].attribute_list_), (yyvsp[-1].string_value_), (yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].key_value_list_));
@@ -3554,153 +3560,153 @@
       (yyval.statement_) = new quickstep::ParseStatementCreateIndex((yylsp[-8]).first_line, (yylsp[-8]).first_column, (yyvsp[-6].string_value_), (yyvsp[-4].string_value_), (yyvsp[-3].attribute_list_), (yyvsp[-1].string_value_));
     }
   }
-#line 3558 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3564 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 25:
-#line 748 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 752 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.drop_table_statement_) = new quickstep::ParseStatementDropTable((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].string_value_));
   }
-#line 3566 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3572 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 26:
-#line 753 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 757 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_definition_) = new quickstep::ParseAttributeDefinition((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].string_value_), (yyvsp[-1].data_type_), (yyvsp[0].column_constraint_list_));
   }
-#line 3574 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3580 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 27:
-#line 758 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 762 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_definition_list_) = new quickstep::PtrList<quickstep::ParseAttributeDefinition>();
     (yyval.attribute_definition_list_)->push_back((yyvsp[0].attribute_definition_));
   }
-#line 3583 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3589 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 28:
-#line 762 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 766 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_definition_list_) = (yyvsp[-2].attribute_definition_list_);
     (yyval.attribute_definition_list_)->push_back((yyvsp[0].attribute_definition_));
   }
-#line 3592 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3598 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 29:
-#line 768 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 772 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = nullptr;
     NotSupported(&(yylsp[0]), yyscanner, "BIT data type");
     YYERROR;
   }
-#line 3602 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3608 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 30:
-#line 773 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 777 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDate));
   }
-#line 3610 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3616 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 31:
-#line 776 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 780 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetime));
   }
-#line 3618 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3624 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 32:
-#line 779 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 783 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = nullptr;
     NotSupported(&(yylsp[0]), yyscanner, "TIME data type");
     YYERROR;
   }
-#line 3628 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3634 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 33:
-#line 784 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 788 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetime));
   }
-#line 3636 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3642 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 34:
-#line 787 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 791 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDouble));
   }
-#line 3644 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3650 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 35:
-#line 790 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 794 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDouble));
   }
-#line 3652 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3658 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 36:
-#line 793 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 797 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDouble));
   }
-#line 3660 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3666 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 37:
-#line 796 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 800 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kFloat));
   }
-#line 3668 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3674 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 38:
-#line 799 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 803 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kInt));
   }
-#line 3676 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3682 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 39:
-#line 802 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 806 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kInt));
   }
-#line 3684 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3690 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 40:
-#line 805 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 809 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kLong));
   }
-#line 3692 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3698 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 41:
-#line 808 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 812 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kLong));
   }
-#line 3700 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3706 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 42:
-#line 811 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 815 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     /**
      * NOTE(chasseur): This pattern exhibits a shift/reduce conflict with the
@@ -3713,27 +3719,27 @@
         "or YEARMONTH INTERVAL");
     YYERROR;
   }
-#line 3717 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3723 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 43:
-#line 823 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 827 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetimeInterval));
   }
-#line 3725 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3731 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 44:
-#line 826 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 830 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kYearMonthInterval));
   }
-#line 3733 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3739 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 45:
-#line 829 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 833 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[-1].numeric_literal_value_)->float_like()) {
       delete (yyvsp[-1].numeric_literal_value_);
@@ -3752,11 +3758,11 @@
       }
     }
   }
-#line 3756 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3762 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 46:
-#line 847 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 851 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[-1].numeric_literal_value_)->float_like()) {
       delete (yyvsp[-1].numeric_literal_value_);
@@ -3775,69 +3781,69 @@
       }
     }
   }
-#line 3779 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3785 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 47:
-#line 867 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 871 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = new quickstep::ParseColumnConstraintNull((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 3787 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3793 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 48:
-#line 870 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 874 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = new quickstep::ParseColumnConstraintNotNull((yylsp[-1]).first_line, (yylsp[-1]).first_column);
   }
-#line 3795 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3801 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 49:
-#line 873 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 877 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = nullptr;
     NotSupported(&(yylsp[0]), yyscanner, "Column Constraints (UNIQUE)");
     YYERROR;
   }
-#line 3805 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3811 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 50:
-#line 878 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 882 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = nullptr;
     NotSupported(&(yylsp[-1]), yyscanner, "Column Constraints (PRIMARY KEY)");
     YYERROR;
   }
-#line 3815 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3821 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 51:
-#line 883 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 887 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = nullptr;
     delete (yyvsp[0].literal_value_);
     NotSupported(&(yylsp[-1]), yyscanner, "Column Constraints (DEFAULT)");
     YYERROR;
   }
-#line 3826 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3832 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 52:
-#line 889 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 893 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = nullptr;
     delete (yyvsp[-1].predicate_);
     NotSupported(&(yylsp[-3]), yyscanner, "Column Constraints (CHECK)");
     YYERROR;
   }
-#line 3837 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3843 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 53:
-#line 895 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 899 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_) = nullptr;
     delete (yyvsp[-3].string_value_);
@@ -3845,65 +3851,65 @@
     NotSupported(&(yylsp[-4]), yyscanner, "Foreign Keys");
     YYERROR;
   }
-#line 3849 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3855 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 54:
-#line 904 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 908 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_list_) = (yyvsp[-1].column_constraint_list_);
     (yyval.column_constraint_list_)->push_back((yyvsp[0].column_constraint_));
   }
-#line 3858 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3864 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 55:
-#line 908 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 912 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_list_) = new quickstep::PtrList<quickstep::ParseColumnConstraint>();
     (yyval.column_constraint_list_)->push_back((yyvsp[0].column_constraint_));
   }
-#line 3867 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3873 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 56:
-#line 914 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 918 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_list_) = nullptr;
   }
-#line 3875 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3881 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 57:
-#line 917 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 921 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.column_constraint_list_) = (yyvsp[0].column_constraint_list_);
   }
-#line 3883 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3889 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 58:
-#line 922 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 926 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-1].string_list_);
     NotSupported(&(yylsp[-3]), yyscanner, "Table Constraints (UNIQUE)");
     YYERROR;
   }
-#line 3893 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3899 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 59:
-#line 927 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 931 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-1].string_list_);
     NotSupported(&(yylsp[-4]), yyscanner, "Table Constraints (PRIMARY KEY)");
     YYERROR;
   }
-#line 3903 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3909 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 60:
-#line 932 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 936 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-6].string_list_);
     delete (yyvsp[-3].string_value_);
@@ -3911,95 +3917,95 @@
     NotSupported(&(yylsp[-9]), yyscanner, "Table Constraints (FOREIGN KEY)");
     YYERROR;
   }
-#line 3915 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3921 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 61:
-#line 939 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 943 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-1].predicate_);
     NotSupported(&(yylsp[-3]), yyscanner, "Table Constraints (CHECK)");
     YYERROR;
   }
-#line 3925 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3931 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 62:
-#line 946 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 950 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     NotSupported(&(yylsp[-2]), yyscanner, "Table Constraints");
     YYERROR;
   }
-#line 3934 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3940 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 63:
-#line 950 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 954 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     NotSupported(&(yylsp[0]), yyscanner, "Table Constraints");
     YYERROR;
   }
-#line 3943 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3949 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 64:
-#line 956 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 960 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     /* $$ = nullptr; */
   }
-#line 3951 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3957 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 65:
-#line 959 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 963 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     /* $$ = $1; */
   }
-#line 3959 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3965 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 66:
-#line 964 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 968 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_list_) = nullptr;
   }
-#line 3967 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3973 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 67:
-#line 967 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 971 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_list_) = (yyvsp[-1].attribute_list_);
   }
-#line 3975 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3981 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 68:
-#line 972 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 976 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.block_properties_) = nullptr;
   }
-#line 3983 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3989 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 69:
-#line 975 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 979 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.block_properties_) = new quickstep::ParseBlockProperties((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-1].key_value_list_));
   }
-#line 3991 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3997 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 70:
-#line 980 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 984 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.partition_clause_) = nullptr;
   }
-#line 3999 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4005 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 71:
-#line 983 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 987 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -4017,111 +4023,111 @@
       }
     }
   }
-#line 4021 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4027 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 72:
-#line 1002 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1006 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, quickstep::kHashPartitionType);
   }
-#line 4029 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4035 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 73:
-#line 1005 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1009 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, quickstep::kRangePartitionType);
   }
-#line 4037 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4043 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 74:
-#line 1010 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1014 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_list_) = new quickstep::PtrList<quickstep::ParseKeyValue>();
     (yyval.key_value_list_)->push_back((yyvsp[0].key_value_));
   }
-#line 4046 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4052 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 75:
-#line 1014 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1018 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_list_) = (yyvsp[-2].key_value_list_);
     (yyval.key_value_list_)->push_back((yyvsp[0].key_value_));
   }
-#line 4055 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4061 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 76:
-#line 1020 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1024 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_) = (yyvsp[0].key_string_value_);
   }
-#line 4063 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4069 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 77:
-#line 1023 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1027 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_) = (yyvsp[0].key_string_list_);
   }
-#line 4071 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4077 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 78:
-#line 1026 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1030 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_) = (yyvsp[0].key_integer_value_);
   }
-#line 4079 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4085 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 79:
-#line 1029 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1033 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_) = (yyvsp[0].key_bool_value_);
   }
-#line 4087 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4093 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 80:
-#line 1034 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1038 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_string_value_) = new quickstep::ParseKeyStringValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].string_value_));
   }
-#line 4095 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4101 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 81:
-#line 1037 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1041 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_string_value_) = new quickstep::ParseKeyStringValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].string_value_));
   }
-#line 4103 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4109 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 82:
-#line 1040 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1044 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     // This is a special case to handle the COMPRESS ALL option of the BLOCK PROPERTIES.
     (yyval.key_string_value_) = new quickstep::ParseKeyStringValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_),
         new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, "ALL"));
   }
-#line 4113 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4119 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 83:
-#line 1047 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1051 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_string_list_) = new quickstep::ParseKeyStringList((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].string_list_));
   }
-#line 4121 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4127 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 84:
-#line 1052 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1056 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -4131,72 +4137,72 @@
     }
     (yyval.key_integer_value_) = new quickstep::ParseKeyIntegerValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].numeric_literal_value_));
   }
-#line 4135 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4141 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 85:
-#line 1063 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1067 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_bool_value_) = new quickstep::ParseKeyBoolValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].boolean_value_));
   }
-#line 4143 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4149 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 86:
-#line 1068 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1072 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     // Defaults to BitWeavingV, but IndexProperties can change this to H.
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kBitWeavingV));
   }
-#line 4153 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4159 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 87:
-#line 1073 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1077 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kBloomFilter));
   }
-#line 4162 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4168 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 88:
-#line 1077 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1081 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kCSBTree));
   }
-#line 4171 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4177 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 89:
-#line 1081 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1085 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kSMA));
   }
-#line 4180 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4186 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 90:
-#line 1087 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1091 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_list_) = nullptr;
   }
-#line 4188 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4194 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 91:
-#line 1090 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1094 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_list_) = (yyvsp[-1].key_value_list_);
   }
-#line 4196 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4202 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 92:
-#line 1096 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1100 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-7].string_value_);
     delete (yyvsp[-5].string_list_);
@@ -4205,180 +4211,180 @@
     NotSupported(&(yylsp[-6]), yyscanner, "list of column names in INSERT statement");
     YYERROR;
   }
-#line 4209 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4215 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 93:
-#line 1104 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1108 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.insert_statement_) = new quickstep::ParseStatementInsertTuple((yylsp[-6]).first_line, (yylsp[-6]).first_column, (yyvsp[-4].string_value_), (yyvsp[-1].literal_value_list_));
+    (yyval.insert_statement_) = new quickstep::ParseStatementInsertTuple((yylsp[-4]).first_line, (yylsp[-4]).first_column, (yyvsp[-2].string_value_), (yyvsp[0].literal_value_list_multiple_));
   }
-#line 4217 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4223 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 94:
-#line 1107 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1111 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.insert_statement_) = new quickstep::ParseStatementInsertSelection((yylsp[-3]).first_line, (yylsp[-2]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].select_query_), nullptr);
   }
-#line 4225 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4231 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 95:
-#line 1110 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1114 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.insert_statement_) = new quickstep::ParseStatementInsertSelection((yylsp[-4]).first_line, (yylsp[-3]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].select_query_), (yyvsp[-4].with_list_));
   }
-#line 4233 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4239 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 96:
-#line 1116 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1120 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.copy_statement_) = new quickstep::ParseStatementCopy((yylsp[-4]).first_line, (yylsp[-4]).first_column,
                                            quickstep::ParseStatementCopy::kFrom,
                                            (yyvsp[-3].string_value_), (yyvsp[-1].string_value_), (yyvsp[0].key_value_list_));
   }
-#line 4243 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4249 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 97:
-#line 1121 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1125 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.copy_statement_) = new quickstep::ParseStatementCopy((yylsp[-3]).first_line, (yylsp[-3]).first_column,
                                            quickstep::ParseStatementCopy::kTo,
                                            (yyvsp[-2].string_value_), (yyvsp[-1].string_value_), (yyvsp[0].key_value_list_));
   }
-#line 4253 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4259 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 98:
-#line 1126 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1130 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.copy_statement_) = new quickstep::ParseStatementCopy((yylsp[-3]).first_line, (yylsp[-3]).first_column,
                                            (yyvsp[-2].set_operation_), nullptr, (yyvsp[-1].string_value_), (yyvsp[0].key_value_list_));
   }
-#line 4262 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4268 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 99:
-#line 1130 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1134 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.copy_statement_) = new quickstep::ParseStatementCopy((yylsp[-4]).first_line, (yylsp[-4]).first_column,
                                            (yyvsp[-2].set_operation_), (yyvsp[-4].with_list_), (yyvsp[-1].string_value_), (yyvsp[0].key_value_list_));
   }
-#line 4271 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4277 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 100:
-#line 1136 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1140 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yyvsp[0].string_value_)->line_number(), (yyvsp[0].string_value_)->column_number(), "@" + (yyvsp[0].string_value_)->value());
     delete (yyvsp[0].string_value_);
   }
-#line 4280 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4286 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 101:
-#line 1140 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1144 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, "$stdout");
   }
-#line 4288 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4294 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 102:
-#line 1143 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1147 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, "$stderr");
   }
-#line 4296 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4302 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 103:
-#line 1148 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1152 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_list_) = nullptr;
   }
-#line 4304 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4310 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 104:
-#line 1151 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1155 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.key_value_list_) = (yyvsp[-1].key_value_list_);
   }
-#line 4312 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4318 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 105:
-#line 1156 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1160 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.update_statement_) = new quickstep::ParseStatementUpdate((yylsp[-4]).first_line, (yylsp[-4]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].assignment_list_), (yyvsp[0].predicate_));
   }
-#line 4320 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4326 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 106:
-#line 1161 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1165 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.delete_statement_) = new quickstep::ParseStatementDelete((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].predicate_));
   }
-#line 4328 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4334 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 107:
-#line 1166 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1170 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.assignment_list_) = (yyvsp[-2].assignment_list_);
     (yyval.assignment_list_)->push_back((yyvsp[0].assignment_));
   }
-#line 4337 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4343 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 108:
-#line 1170 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1174 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.assignment_list_) = new quickstep::PtrList<quickstep::ParseAssignment>();
     (yyval.assignment_list_)->push_back((yyvsp[0].assignment_));
   }
-#line 4346 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4352 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 109:
-#line 1176 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1180 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.assignment_) = new quickstep::ParseAssignment((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].string_value_), (yyvsp[0].expression_));
   }
-#line 4354 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4360 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 110:
-#line 1185 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1189 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.set_operation_statement_) = new quickstep::ParseStatementSetOperation((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].set_operation_), nullptr, (yyvsp[0].opt_priority_clause_));
   }
-#line 4362 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4368 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 111:
-#line 1188 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1192 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.set_operation_statement_) = new quickstep::ParseStatementSetOperation((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-1].set_operation_), (yyvsp[-2].with_list_), (yyvsp[0].opt_priority_clause_));
   }
-#line 4370 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4376 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 112:
-#line 1193 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1197 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_priority_clause_) = nullptr;
   }
-#line 4378 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4384 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 113:
-#line 1196 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1200 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -4396,46 +4402,46 @@
       }
     }
   }
-#line 4400 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4406 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 114:
-#line 1215 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1219 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.with_list_) = (yyvsp[0].with_list_);
   }
-#line 4408 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4414 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 115:
-#line 1220 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1224 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.with_list_) = new quickstep::PtrVector<quickstep::ParseSubqueryTableReference>();
     (yyval.with_list_)->push_back((yyvsp[0].with_list_element_));
   }
-#line 4417 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4423 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 116:
-#line 1224 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1228 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.with_list_) = (yyvsp[-2].with_list_);
     (yyval.with_list_)->push_back((yyvsp[0].with_list_element_));
   }
-#line 4426 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4432 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 117:
-#line 1230 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1234 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.with_list_element_) = new quickstep::ParseSubqueryTableReference((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].subquery_expression_));
     (yyval.with_list_element_)->set_table_reference_signature((yyvsp[-2].table_reference_signature_));
   }
-#line 4435 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4441 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 118:
-#line 1236 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1240 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[-1].boolean_value_)) {
       (yyval.set_operation_) = new quickstep::ParseSetOperation((yylsp[-3]).first_line, (yylsp[-3]).first_column, quickstep::ParseSetOperation::kUnion);
@@ -4445,19 +4451,19 @@
     (yyval.set_operation_)->addOperand((yyvsp[-3].set_operation_));
     (yyval.set_operation_)->addOperand((yyvsp[0].set_operation_));
   }
-#line 4449 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4455 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 119:
-#line 1245 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1249 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.set_operation_) = (yyvsp[0].set_operation_);
   }
-#line 4457 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4463 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 120:
-#line 1250 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1254 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.set_operation_) = new quickstep::ParseSetOperation((yylsp[-2]).first_line, (yylsp[-2]).first_column, quickstep::ParseSetOperation::kIntersect);
     quickstep::ParseSetOperation *op = new quickstep::ParseSetOperation(
@@ -4466,387 +4472,387 @@
     (yyval.set_operation_)->addOperand((yyvsp[-2].set_operation_));
     (yyval.set_operation_)->addOperand(op);
   }
-#line 4470 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4476 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 121:
-#line 1258 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1262 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.set_operation_) = new quickstep::ParseSetOperation((yylsp[0]).first_line, (yylsp[0]).first_column, quickstep::ParseSetOperation::kSelect);
     (yyval.set_operation_)->addOperand((yyvsp[0].select_query_));
   }
-#line 4479 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4485 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 122:
-#line 1265 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1269 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.select_query_) = new quickstep::ParseSelect((yylsp[-9]).first_line, (yylsp[-9]).first_column, (yyvsp[-7].selection_), (yyvsp[-6].table_reference_list_), (yyvsp[-5].predicate_), (yyvsp[-4].opt_group_by_clause_), (yyvsp[-3].opt_having_clause_), (yyvsp[-2].opt_order_by_clause_), (yyvsp[-1].opt_limit_clause_), (yyvsp[0].opt_window_clause_));
   }
-#line 4487 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4493 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 123:
-#line 1270 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1274 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.boolean_value_) = true;  // Distinct
   }
-#line 4495 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4501 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 124:
-#line 1273 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1277 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.boolean_value_) = false;  // All
   }
-#line 4503 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4509 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 125:
-#line 1276 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1280 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.boolean_value_) = true;  // Distinct
   }
-#line 4511 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4517 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 126:
-#line 1281 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1285 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_) = new quickstep::ParseSelectionStar((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 4519 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4525 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 127:
-#line 1284 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1288 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_) = (yyvsp[0].selection_list_);
   }
-#line 4527 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4533 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 128:
-#line 1289 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1293 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_list_) = new quickstep::ParseSelectionList((yylsp[0]).first_line, (yylsp[0]).first_column);
     (yyval.selection_list_)->add((yyvsp[0].selection_item_));
   }
-#line 4536 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4542 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 129:
-#line 1293 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1297 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_list_) = (yyvsp[-2].selection_list_);
     (yyval.selection_list_)->add((yyvsp[0].selection_item_));
   }
-#line 4545 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4551 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 130:
-#line 1299 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1303 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_item_) = new quickstep::ParseSelectionItem((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].expression_), (yyvsp[0].string_value_));
   }
-#line 4553 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4559 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 131:
-#line 1302 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1306 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_item_) = new quickstep::ParseSelectionItem((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].expression_), (yyvsp[0].string_value_));
   }
-#line 4561 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4567 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 132:
-#line 1305 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1309 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.selection_item_) = new quickstep::ParseSelectionItem((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].expression_));
   }
-#line 4569 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4575 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 133:
-#line 1310 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1314 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_list_) = (yyvsp[0].table_reference_list_);
   }
-#line 4577 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4583 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 134:
-#line 1315 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1319 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.subquery_expression_) = new quickstep::ParseSubqueryExpression((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-1].set_operation_));
   }
-#line 4585 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4591 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 135:
-#line 1320 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1324 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_sample_clause_) = NULL;
   }
-#line 4593 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4599 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 136:
-#line 1323 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1327 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_sample_clause_) = new quickstep::ParseSample((yylsp[-2]).first_line, (yylsp[-2]).first_column, true, (yyvsp[-1].numeric_literal_value_));
   }
-#line 4601 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4607 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 137:
-#line 1326 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1330 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_sample_clause_) = new quickstep::ParseSample((yylsp[-2]).first_line, (yylsp[-2]).first_column, false, (yyvsp[-1].numeric_literal_value_));
   }
-#line 4609 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4615 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 138:
-#line 1331 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1335 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kInnerJoin;
   }
-#line 4617 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4623 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 139:
-#line 1334 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1338 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kInnerJoin;
   }
-#line 4625 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4631 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 140:
-#line 1337 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1341 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kLeftOuterJoin;
   }
-#line 4633 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4639 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 141:
-#line 1340 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1344 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kLeftOuterJoin;
   }
-#line 4641 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4647 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 142:
-#line 1343 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1347 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kRightOuterJoin;
   }
-#line 4649 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4655 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 143:
-#line 1346 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1350 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kRightOuterJoin;
   }
-#line 4657 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4663 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 144:
-#line 1349 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1353 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kFullOuterJoin;
   }
-#line 4665 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4671 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 145:
-#line 1352 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1356 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kFullOuterJoin;
   }
-#line 4673 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4679 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 146:
-#line 1357 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1361 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = new quickstep::ParseJoinedTableReference((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-4].join_type_), (yyvsp[-5].table_reference_), (yyvsp[-2].table_reference_), (yyvsp[0].predicate_));
   }
-#line 4681 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4687 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 147:
-#line 1360 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1364 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = (yyvsp[0].table_reference_);
   }
-#line 4689 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4695 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 148:
-#line 1365 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1369 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = new quickstep::ParseSubqueryTableReference((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].subquery_expression_));
     (yyval.table_reference_)->set_table_reference_signature((yyvsp[0].table_reference_signature_));
   }
-#line 4698 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4704 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 149:
-#line 1369 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1373 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = new quickstep::ParseSimpleTableReference((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].string_value_), (yyvsp[-1].opt_sample_clause_));
     (yyval.table_reference_)->set_table_reference_signature((yyvsp[0].table_reference_signature_));
   }
-#line 4707 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4713 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 150:
-#line 1373 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1377 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = new quickstep::ParseSimpleTableReference((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].opt_sample_clause_));
   }
-#line 4715 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4721 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 151:
-#line 1376 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1380 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = new quickstep::ParseGeneratorTableReference((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].function_call_));
     (yyval.table_reference_)->set_table_reference_signature((yyvsp[0].table_reference_signature_));
   }
-#line 4724 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4730 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 152:
-#line 1380 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1384 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = new quickstep::ParseGeneratorTableReference((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].function_call_));
   }
-#line 4732 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4738 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 153:
-#line 1383 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1387 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_) = (yyvsp[-1].table_reference_);
   }
-#line 4740 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4746 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 154:
-#line 1388 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1392 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_signature_) = (yyvsp[0].table_reference_signature_);
   }
-#line 4748 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4754 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 155:
-#line 1391 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1395 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_signature_) = (yyvsp[0].table_reference_signature_);
   }
-#line 4756 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4762 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 156:
-#line 1396 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1400 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_signature_) = new ::quickstep::ParseTableReferenceSignature((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].string_value_));
   }
-#line 4764 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4770 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 157:
-#line 1399 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1403 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_signature_) = new ::quickstep::ParseTableReferenceSignature((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].string_list_));
   }
-#line 4772 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4778 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 158:
-#line 1404 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1408 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_list_) = new quickstep::PtrList<quickstep::ParseTableReference>();
     (yyval.table_reference_list_)->push_back((yyvsp[0].table_reference_));
   }
-#line 4781 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4787 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 159:
-#line 1408 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1412 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.table_reference_list_) = (yyvsp[-2].table_reference_list_);
     (yyval.table_reference_list_)->push_back((yyvsp[0].table_reference_));
   }
-#line 4790 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4796 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 160:
-#line 1414 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1418 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_group_by_clause_) = nullptr;
   }
-#line 4798 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4804 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 161:
-#line 1417 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1421 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_group_by_clause_) = new quickstep::ParseGroupBy((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].expression_list_));
   }
-#line 4806 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4812 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 162:
-#line 1422 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1426 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_having_clause_) = nullptr;
   }
-#line 4814 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4820 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 163:
-#line 1425 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1429 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_having_clause_) = new quickstep::ParseHaving((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].predicate_));
   }
-#line 4822 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4828 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 164:
-#line 1430 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1434 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_order_by_clause_) = nullptr;
   }
-#line 4830 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4836 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 165:
-#line 1433 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1437 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_order_by_clause_) = new quickstep::ParseOrderBy((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].order_commalist_));
   }
-#line 4838 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4844 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 166:
-#line 1438 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1442 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_limit_clause_) = nullptr;
   }
-#line 4846 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4852 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 167:
-#line 1441 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1445 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -4864,258 +4870,258 @@
       }
     }
   }
-#line 4868 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4874 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 168:
-#line 1460 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1464 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_window_clause_) = nullptr;
   }
-#line 4876 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4882 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 169:
-#line 1463 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1467 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_window_clause_) = (yyvsp[0].opt_window_clause_);
   }
-#line 4884 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4890 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 170:
-#line 1468 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1472 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_window_clause_) = new quickstep::PtrList<quickstep::ParseWindow>();
     (yyval.opt_window_clause_)->push_back((yyvsp[0].window_definition_));
   }
-#line 4893 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4899 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 171:
-#line 1472 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1476 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.opt_window_clause_) = (yyvsp[-1].opt_window_clause_);
     (yyval.opt_window_clause_)->push_back((yyvsp[0].window_definition_));
   }
-#line 4902 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4908 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 172:
-#line 1478 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1482 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_definition_) = (yyvsp[-1].window_definition_);
     (yyval.window_definition_)->setName((yyvsp[-4].string_value_));
   }
-#line 4911 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4917 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 173:
-#line 1484 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1488 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_definition_) = new quickstep::ParseWindow((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].window_partition_by_list_), (yyvsp[-1].window_order_by_list_), (yyvsp[0].window_frame_info_));
   }
-#line 4919 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4925 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 174:
-#line 1489 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1493 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_partition_by_list_) = nullptr;
   }
-#line 4927 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4933 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 175:
-#line 1492 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1496 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_partition_by_list_) = (yyvsp[0].expression_list_);
   }
-#line 4935 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4941 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 176:
-#line 1497 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1501 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_order_by_list_) = nullptr;
   }
-#line 4943 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4949 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 177:
-#line 1500 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1504 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_order_by_list_) = (yyvsp[0].order_commalist_);
   }
-#line 4951 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4957 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 178:
-#line 1505 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1509 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_frame_info_) = nullptr;
   }
-#line 4959 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4965 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 179:
-#line 1508 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1512 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.window_frame_info_) = new quickstep::ParseFrameInfo((yylsp[-4]).first_line, (yylsp[-4]).first_column, (yyvsp[-4].boolean_value_), (yyvsp[-2].numeric_literal_value_)->long_value(), (yyvsp[0].numeric_literal_value_)->long_value());
   }
-#line 4967 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4973 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 180:
-#line 1513 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1517 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.boolean_value_) = true;
   }
-#line 4975 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4981 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 181:
-#line 1516 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1520 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.boolean_value_) = false;
   }
-#line 4983 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4989 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 183:
-#line 1522 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1526 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.numeric_literal_value_) = new quickstep::NumericParseLiteralValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, "-1");
   }
-#line 4991 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4997 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 184:
-#line 1525 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1529 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.numeric_literal_value_) = new quickstep::NumericParseLiteralValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, "0");
   }
-#line 4999 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5005 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 186:
-#line 1531 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1535 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.numeric_literal_value_) = new quickstep::NumericParseLiteralValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, "-1");
   }
-#line 5007 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5013 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 187:
-#line 1534 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1538 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.numeric_literal_value_) = new quickstep::NumericParseLiteralValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, "0");
   }
-#line 5015 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5021 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 188:
-#line 1539 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1543 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_commalist_) = new quickstep::PtrList<quickstep::ParseOrderByItem>();
     (yyval.order_commalist_)->push_back((yyvsp[0].order_item_));
   }
-#line 5024 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5030 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 189:
-#line 1543 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1547 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_commalist_) = (yyvsp[-2].order_commalist_);
     (yyval.order_commalist_)->push_back((yyvsp[0].order_item_));
   }
-#line 5033 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5039 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 190:
-#line 1549 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1553 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_item_) = new quickstep::ParseOrderByItem((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].expression_), (yyvsp[-1].order_direction_), (yyvsp[0].order_direction_));
     delete (yyvsp[-1].order_direction_);
     delete (yyvsp[0].order_direction_);
   }
-#line 5043 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5049 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 191:
-#line 1556 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1560 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_direction_) = nullptr;
   }
-#line 5051 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5057 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 192:
-#line 1559 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1563 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_direction_) = new bool(true);
   }
-#line 5059 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5065 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 193:
-#line 1562 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1566 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_direction_) = new bool(false);
   }
-#line 5067 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5073 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 194:
-#line 1567 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1571 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_direction_) = nullptr;
   }
-#line 5075 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5081 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 195:
-#line 1570 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1574 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_direction_) = new bool(true);
   }
-#line 5083 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5089 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 196:
-#line 1573 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1577 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.order_direction_) = new bool(false);
   }
-#line 5091 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5097 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 197:
-#line 1579 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1583 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = nullptr;
   }
-#line 5099 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5105 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 198:
-#line 1582 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1586 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 5107 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5113 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 199:
-#line 1587 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1591 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 5115 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5121 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 200:
-#line 1592 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1596 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[-2].predicate_)->getParsePredicateType() == quickstep::ParsePredicate::kDisjunction) {
       (yyval.predicate_) = (yyvsp[-2].predicate_);
@@ -5125,19 +5131,19 @@
     }
     static_cast<quickstep::ParsePredicateDisjunction *>((yyval.predicate_))->addPredicate((yyvsp[0].predicate_));
   }
-#line 5129 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5135 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 201:
-#line 1601 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1605 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 5137 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5143 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 202:
-#line 1606 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1610 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[-2].predicate_)->getParsePredicateType() == quickstep::ParsePredicate::kConjunction) {
       (yyval.predicate_) = (yyvsp[-2].predicate_);
@@ -5147,453 +5153,453 @@
     }
     static_cast<quickstep::ParsePredicateConjunction *>((yyval.predicate_))->addPredicate((yyvsp[0].predicate_));
   }
-#line 5151 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5157 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 203:
-#line 1615 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1619 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 5159 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5165 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 204:
-#line 1620 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1624 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateNegation((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].predicate_));
   }
-#line 5167 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5173 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 205:
-#line 1623 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1627 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 5175 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5181 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 206:
-#line 1628 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1632 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateBetween((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-4].expression_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 5183 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5189 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 207:
-#line 1631 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1635 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateNegation(
         (yylsp[-4]).first_line, (yylsp[-4]).first_column,
         new quickstep::ParsePredicateBetween((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-5].expression_), (yyvsp[-2].expression_), (yyvsp[0].expression_)));
   }
-#line 5193 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5199 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 208:
-#line 1636 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1640 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-3].attribute_);
     (yyval.predicate_) = nullptr;
     NotSupported(&(yylsp[-2]), yyscanner, "NULL comparison predicates");
     YYERROR;
   }
-#line 5204 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5210 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 209:
-#line 1642 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1646 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     delete (yyvsp[-2].attribute_);
     (yyval.predicate_) = nullptr;
     NotSupported(&(yylsp[-1]), yyscanner, "NULL comparison predicates");
     YYERROR;
   }
-#line 5215 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5221 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 210:
-#line 1648 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1652 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateComparison((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].comparison_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 5223 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5229 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 211:
-#line 1651 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1655 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = (yyvsp[-1].predicate_);
   }
-#line 5231 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5237 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 212:
-#line 1654 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1658 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateExists((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].subquery_expression_));
   }
-#line 5239 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5245 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 213:
-#line 1657 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1661 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateInTableQuery((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-2].expression_), (yyvsp[0].subquery_expression_));
   }
-#line 5247 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5253 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 214:
-#line 1660 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1664 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateInValueList((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-4].expression_), (yyvsp[-1].expression_list_));
   }
-#line 5255 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5261 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 215:
-#line 1663 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1667 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateNegation(
         (yylsp[-2]).first_line,
         (yylsp[-2]).first_column,
         new quickstep::ParsePredicateInTableQuery((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-3].expression_), (yyvsp[0].subquery_expression_)));
   }
-#line 5266 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5272 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 216:
-#line 1669 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1673 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateNegation(
         (yylsp[-4]).first_line,
         (yylsp[-4]).first_column,
         new quickstep::ParsePredicateInValueList((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-5].expression_), (yyvsp[-1].expression_list_)));
   }
-#line 5277 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5283 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 217:
-#line 1678 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1682 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseBinaryExpression((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].binary_operation_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 5285 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5291 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 218:
-#line 1681 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1685 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5293 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5299 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 219:
-#line 1686 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1690 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseBinaryExpression((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].binary_operation_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 5301 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5307 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 220:
-#line 1689 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1693 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5309 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5315 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 221:
-#line 1694 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1698 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseUnaryExpression((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].unary_operation_), (yyvsp[0].expression_));
   }
-#line 5317 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5323 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 222:
-#line 1697 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1701 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5325 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5331 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 223:
-#line 1702 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1706 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].attribute_);
   }
-#line 5333 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5339 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 224:
-#line 1705 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1709 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseScalarLiteral((yyvsp[0].literal_value_));
   }
-#line 5341 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5347 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 225:
-#line 1708 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1712 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].function_call_);
   }
-#line 5349 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5355 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 226:
-#line 1711 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1715 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyvsp[-2].function_call_)->setWindowName((yyvsp[0].string_value_));
     (yyval.expression_) = (yyvsp[-2].function_call_);
   }
-#line 5358 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5364 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 227:
-#line 1715 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1719 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyvsp[-4].function_call_)->setWindow((yyvsp[-1].window_definition_));
     (yyval.expression_) = (yyvsp[-4].function_call_);
   }
-#line 5367 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5373 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 228:
-#line 1719 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1723 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5375 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5381 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 229:
-#line 1722 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1726 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5383 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5389 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 230:
-#line 1725 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1729 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5391 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5397 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 231:
-#line 1728 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1732 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[-1].expression_);
   }
-#line 5399 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5405 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 232:
-#line 1731 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1735 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].subquery_expression_);
   }
-#line 5407 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5413 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 233:
-#line 1736 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1740 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.function_call_) = new quickstep::ParseFunctionCall(
         (yylsp[-2]).first_line, (yylsp[-2]).first_column, false, (yyvsp[-2].string_value_), new quickstep::PtrList<quickstep::ParseExpression>());
   }
-#line 5416 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5422 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 234:
-#line 1740 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1744 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.function_call_) = new quickstep::ParseFunctionCall(
         (yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-3].string_value_), new quickstep::ParseStar((yylsp[-1]).first_line, (yylsp[-1]).first_column));
   }
-#line 5425 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5431 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 235:
-#line 1744 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1748 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.function_call_) = new quickstep::ParseFunctionCall((yylsp[-3]).first_line, (yylsp[-3]).first_column, false, (yyvsp[-3].string_value_), (yyvsp[-1].expression_list_));
   }
-#line 5433 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5439 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 236:
-#line 1747 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1751 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.function_call_) = new quickstep::ParseFunctionCall((yylsp[-4]).first_line, (yylsp[-4]).first_column, true, (yyvsp[-4].string_value_), (yyvsp[-1].expression_list_));
   }
-#line 5441 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5447 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 237:
-#line 1752 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1756 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseExtractFunction((yylsp[-5]).first_line, (yylsp[-5]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].expression_));
   }
-#line 5449 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5455 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 238:
-#line 1757 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1761 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseSubstringFunction(
         (yylsp[-5]).first_line, (yylsp[-5]).first_column, (yyvsp[-3].expression_), (yyvsp[-1].numeric_literal_value_)->long_value());
   }
-#line 5458 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5464 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 239:
-#line 1761 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1765 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseSubstringFunction(
         (yylsp[-7]).first_line, (yylsp[-7]).first_column, (yyvsp[-5].expression_), (yyvsp[-3].numeric_literal_value_)->long_value(), (yyvsp[-1].numeric_literal_value_)->long_value());
   }
-#line 5467 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5473 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 240:
-#line 1767 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1771 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseSimpleCaseExpression((yylsp[-4]).first_line, (yylsp[-4]).first_column, (yyvsp[-3].expression_), (yyvsp[-2].simple_when_clause_list_), (yyvsp[-1].expression_));
   }
-#line 5475 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5481 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 241:
-#line 1770 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1774 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = new quickstep::ParseSearchedCaseExpression((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-2].searched_when_clause_list_), (yyvsp[-1].expression_));
   }
-#line 5483 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5489 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 242:
-#line 1775 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1779 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.simple_when_clause_list_) = new quickstep::PtrVector<quickstep::ParseSimpleWhenClause>;
     (yyval.simple_when_clause_list_)->push_back((yyvsp[0].simple_when_clause_));
   }
-#line 5492 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5498 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 243:
-#line 1779 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1783 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.simple_when_clause_list_) = (yyvsp[-1].simple_when_clause_list_);
     (yyval.simple_when_clause_list_)->push_back((yyvsp[0].simple_when_clause_));
   }
-#line 5501 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5507 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 244:
-#line 1785 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1789 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.simple_when_clause_) = new quickstep::ParseSimpleWhenClause((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 5509 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5515 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 245:
-#line 1790 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1794 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.searched_when_clause_list_) = new quickstep::PtrVector<quickstep::ParseSearchedWhenClause>;
     (yyval.searched_when_clause_list_)->push_back((yyvsp[0].searched_when_clause_));
   }
-#line 5518 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5524 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 246:
-#line 1794 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1798 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.searched_when_clause_list_) = (yyvsp[-1].searched_when_clause_list_);
     (yyval.searched_when_clause_list_)->push_back((yyvsp[0].searched_when_clause_));
   }
-#line 5527 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5533 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 247:
-#line 1800 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1804 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.searched_when_clause_) = new quickstep::ParseSearchedWhenClause((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-2].predicate_), (yyvsp[0].expression_));
   }
-#line 5535 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5541 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 248:
-#line 1805 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1809 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = NULL;
   }
-#line 5543 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5549 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 249:
-#line 1808 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1812 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5551 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5557 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 250:
-#line 1813 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1817 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_list_) = new quickstep::PtrList<quickstep::ParseExpression>();
     (yyval.expression_list_)->push_back((yyvsp[0].expression_));
   }
-#line 5560 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5566 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 251:
-#line 1817 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1821 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.expression_list_) = (yyvsp[-2].expression_list_);
     (yyval.expression_list_)->push_back((yyvsp[0].expression_));
   }
-#line 5569 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5575 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 252:
-#line 1823 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1827 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.literal_value_) = new quickstep::NullParseLiteralValue((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 5577 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5583 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 253:
-#line 1826 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1830 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.literal_value_) = (yyvsp[0].numeric_literal_value_);
   }
-#line 5585 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5591 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 254:
-#line 1829 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1833 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.literal_value_) = (yyvsp[0].numeric_literal_value_);
   }
-#line 5593 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5599 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 255:
-#line 1832 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1836 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     /**
      * NOTE(chasseur): This case exhibits a shift/reduce conflict with the
@@ -5606,20 +5612,20 @@
     (yyvsp[0].numeric_literal_value_)->prependMinus();
     (yyval.literal_value_) = (yyvsp[0].numeric_literal_value_);
   }
-#line 5610 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5616 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 256:
-#line 1844 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1848 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.literal_value_) = new quickstep::StringParseLiteralValue((yyvsp[0].string_value_),
                                                 nullptr);  // No explicit type.
   }
-#line 5619 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5625 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 257:
-#line 1848 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1852 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     /**
      * NOTE(chasseur): This case exhibits a shift/reduce conflict with the
@@ -5639,11 +5645,11 @@
       YYERROR;
     }
   }
-#line 5643 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5649 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 258:
-#line 1867 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1871 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     quickstep::StringParseLiteralValue *parse_value;
     const std::string &datetime_type_value = (yyvsp[0].string_value_)->value();
@@ -5657,11 +5663,11 @@
       YYERROR;
     }
   }
-#line 5661 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5667 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 259:
-#line 1880 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1884 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     quickstep::StringParseLiteralValue *parse_value
         = new quickstep::StringParseLiteralValue((yyvsp[0].string_value_), &((yyvsp[-1].data_type_)->getType()));
@@ -5675,191 +5681,209 @@
       (yyval.literal_value_) = parse_value;
     }
   }
-#line 5679 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5685 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 260:
-#line 1895 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1899 "../SqlParser.ypp" /* yacc.c:1661  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("YEAR"));
   }
-#line 5687 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5693 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 261:
-#line 1898 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1902 "../SqlParser.ypp" /* yacc.c:1661  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("MONTH"));
   }
-#line 5695 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5701 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 262:
-#line 1901 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1905 "../SqlParser.ypp" /* yacc.c:1661  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("DAY"));
   }
-#line 5703 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5709 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 263:
-#line 1904 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1908 "../SqlParser.ypp" /* yacc.c:1661  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("HOUR"));
   }
-#line 5711 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5717 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 264:
-#line 1907 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1911 "../SqlParser.ypp" /* yacc.c:1661  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("MINUTE"));
   }
-#line 5719 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5725 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 265:
-#line 1910 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1914 "../SqlParser.ypp" /* yacc.c:1661  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("SECOND"));
   }
-#line 5727 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5733 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 266:
-#line 1915 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1919 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.literal_value_list_) = new quickstep::PtrList<quickstep::ParseScalarLiteral>();
     (yyval.literal_value_list_)->push_back(new quickstep::ParseScalarLiteral((yyvsp[0].literal_value_)));
   }
-#line 5736 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5742 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 267:
-#line 1919 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1923 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.literal_value_list_) = (yyvsp[-2].literal_value_list_);
     (yyval.literal_value_list_)->push_back(new quickstep::ParseScalarLiteral((yyvsp[0].literal_value_)));
   }
-#line 5745 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5751 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 268:
-#line 1925 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1929 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.attribute_) = new quickstep::ParseAttribute((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].string_value_));
+    (yyval.literal_value_list_multiple_) = new quickstep::PtrList<quickstep::PtrList<quickstep::ParseScalarLiteral>>();
+    (yyval.literal_value_list_multiple_)->push_back((yyvsp[-1].literal_value_list_));
   }
-#line 5753 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5760 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 269:
-#line 1928 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1933 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.attribute_) = new quickstep::ParseAttribute((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].string_value_), (yyvsp[-2].string_value_));
+    (yyval.literal_value_list_multiple_) = (yyvsp[-4].literal_value_list_multiple_);
+    (yyval.literal_value_list_multiple_)->push_back((yyvsp[-1].literal_value_list_));
   }
-#line 5761 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5769 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
   case 270:
-#line 1933 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1939 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.attribute_) = new quickstep::ParseAttribute((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].string_value_));
+  }
+#line 5777 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 271:
+#line 1942 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.attribute_) = new quickstep::ParseAttribute((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].string_value_), (yyvsp[-2].string_value_));
+  }
+#line 5785 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 272:
+#line 1947 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_list_) = new quickstep::PtrList<quickstep::ParseAttribute>();
     (yyval.attribute_list_)->push_back((yyvsp[0].attribute_));
   }
-#line 5770 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5794 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 271:
-#line 1937 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 273:
+#line 1951 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.attribute_list_) = (yyvsp[-2].attribute_list_);
     (yyval.attribute_list_)->push_back((yyvsp[0].attribute_));
   }
-#line 5779 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 272:
-#line 1944 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kEqual);
-  }
-#line 5787 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 273:
-#line 1947 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kNotEqual);
-  }
-#line 5795 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 274:
-#line 1950 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kLess);
-  }
 #line 5803 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 275:
-#line 1953 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 274:
+#line 1958 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kLessOrEqual);
+    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kEqual);
   }
 #line 5811 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 276:
-#line 1956 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 275:
+#line 1961 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kGreater);
+    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kNotEqual);
   }
 #line 5819 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 277:
-#line 1959 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 276:
+#line 1964 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kGreaterOrEqual);
+    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kLess);
   }
 #line 5827 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 278:
-#line 1962 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 277:
+#line 1967 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kLike);
+    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kLessOrEqual);
   }
 #line 5835 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 279:
-#line 1965 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 278:
+#line 1970 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kNotLike);
+    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kGreater);
   }
 #line 5843 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 280:
-#line 1968 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 279:
+#line 1973 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kRegexMatch);
+    (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kGreaterOrEqual);
   }
 #line 5851 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 281:
-#line 1971 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 280:
+#line 1976 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kNotRegexMatch);
+    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kLike);
   }
 #line 5859 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
+  case 281:
+#line 1979 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kNotLike);
+  }
+#line 5867 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
   case 282:
-#line 1976 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1982 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kRegexMatch);
+  }
+#line 5875 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 283:
+#line 1985 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.comparison_) =  &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kNotRegexMatch);
+  }
+#line 5883 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 284:
+#line 1990 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     /**
      * NOTE(chasseur): This case exhibits a shift/reduce conflict with the
@@ -5869,146 +5893,146 @@
      **/
     (yyval.unary_operation_) = &quickstep::UnaryOperationFactory::GetUnaryOperation(quickstep::UnaryOperationID::kNegate);
   }
-#line 5873 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 283:
-#line 1987 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kAdd);
-  }
-#line 5881 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 284:
-#line 1990 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kSubtract);
-  }
-#line 5889 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 285:
-#line 1995 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kModulo);
-  }
 #line 5897 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 286:
-#line 1998 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 285:
+#line 2001 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kMultiply);
+    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kAdd);
   }
 #line 5905 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 287:
-#line 2001 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 286:
+#line 2004 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kDivide);
+    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kSubtract);
   }
 #line 5913 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
+  case 287:
+#line 2009 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kModulo);
+  }
+#line 5921 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
   case 288:
-#line 2007 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 2012 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kMultiply);
+  }
+#line 5929 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 289:
+#line 2015 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.binary_operation_) = &quickstep::BinaryOperationFactory::GetBinaryOperation(quickstep::BinaryOperationID::kDivide);
+  }
+#line 5937 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 290:
+#line 2021 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_list_) = new quickstep::PtrList<quickstep::ParseString>();
     (yyval.string_list_)->push_back((yyvsp[0].string_value_));
   }
-#line 5922 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5946 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 289:
-#line 2011 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 291:
+#line 2025 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_list_) = (yyvsp[-2].string_list_);
     (yyval.string_list_)->push_back((yyvsp[0].string_value_));
   }
-#line 5931 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5955 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 290:
-#line 2017 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 292:
+#line 2031 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     (yyval.string_value_) = (yyvsp[0].string_value_);
   }
-#line 5939 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5963 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 291:
-#line 2020 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 293:
+#line 2034 "../SqlParser.ypp" /* yacc.c:1661  */
     {
     if ((yyvsp[0].string_value_)->value().empty()) {
       quickstep_yyerror(&(yylsp[0]), yyscanner, nullptr, "Zero-length identifier");
     }
     (yyval.string_value_) = (yyvsp[0].string_value_);
   }
-#line 5950 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 292:
-#line 2028 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.boolean_value_) = true;
-  }
-#line 5958 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 293:
-#line 2031 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.boolean_value_) = true;
-  }
-#line 5966 "SqlParser_gen.cpp" /* yacc.c:1661  */
-    break;
-
-  case 294:
-#line 2034 "../SqlParser.ypp" /* yacc.c:1661  */
-    {
-    (yyval.boolean_value_) = false;
-  }
 #line 5974 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 295:
-#line 2037 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 294:
+#line 2042 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.boolean_value_) = false;
+    (yyval.boolean_value_) = true;
   }
 #line 5982 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 296:
-#line 2043 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 295:
+#line 2045 "../SqlParser.ypp" /* yacc.c:1661  */
     {
-    (yyval.command_) = new quickstep::ParseCommand((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].command_argument_list_));
+    (yyval.boolean_value_) = true;
   }
 #line 5990 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 297:
+  case 296:
 #line 2048 "../SqlParser.ypp" /* yacc.c:1661  */
     {
+    (yyval.boolean_value_) = false;
+  }
+#line 5998 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 297:
+#line 2051 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.boolean_value_) = false;
+  }
+#line 6006 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 298:
+#line 2057 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
+    (yyval.command_) = new quickstep::ParseCommand((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].command_argument_list_));
+  }
+#line 6014 "SqlParser_gen.cpp" /* yacc.c:1661  */
+    break;
+
+  case 299:
+#line 2062 "../SqlParser.ypp" /* yacc.c:1661  */
+    {
     quickstep::PtrVector<quickstep::ParseString> *argument_list = (yyvsp[-1].command_argument_list_);
     argument_list->push_back((yyvsp[0].string_value_));
     (yyval.command_argument_list_) = argument_list;
   }
-#line 6000 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 6024 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
-  case 298:
-#line 2053 "../SqlParser.ypp" /* yacc.c:1661  */
+  case 300:
+#line 2067 "../SqlParser.ypp" /* yacc.c:1661  */
     { /* Epsilon, an empy match. */
     (yyval.command_argument_list_) = new quickstep::PtrVector<quickstep::ParseString>();
   }
-#line 6008 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 6032 "SqlParser_gen.cpp" /* yacc.c:1661  */
     break;
 
 
-#line 6012 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 6036 "SqlParser_gen.cpp" /* yacc.c:1661  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -6243,7 +6267,7 @@
 #endif
   return yyresult;
 }
-#line 2057 "../SqlParser.ypp" /* yacc.c:1906  */
+#line 2071 "../SqlParser.ypp" /* yacc.c:1906  */
 
 
 void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string &feature) {
diff --git a/parser/preprocessed/SqlParser_gen.hpp b/parser/preprocessed/SqlParser_gen.hpp
index f6b5247..142059d 100644
--- a/parser/preprocessed/SqlParser_gen.hpp
+++ b/parser/preprocessed/SqlParser_gen.hpp
@@ -198,6 +198,7 @@
   quickstep::NumericParseLiteralValue *numeric_literal_value_;
   quickstep::ParseLiteralValue *literal_value_;
   quickstep::PtrList<quickstep::ParseScalarLiteral> *literal_value_list_;
+  quickstep::PtrList<quickstep::PtrList<quickstep::ParseScalarLiteral>> *literal_value_list_multiple_;
 
   quickstep::ParseExpression *expression_;
 
@@ -288,7 +289,7 @@
 
   quickstep::ParsePriority *opt_priority_clause_;
 
-#line 292 "SqlParser_gen.hpp" /* yacc.c:1915  */
+#line 293 "SqlParser_gen.hpp" /* yacc.c:1915  */
 };
 
 typedef union YYSTYPE YYSTYPE;
diff --git a/query_optimizer/ExecutionGenerator.cpp b/query_optimizer/ExecutionGenerator.cpp
index 372d576..14d8949 100644
--- a/query_optimizer/ExecutionGenerator.cpp
+++ b/query_optimizer/ExecutionGenerator.cpp
@@ -1461,70 +1461,72 @@
       *catalog_database_->getRelationById(
           input_relation_info->relation->getID());
 
-  // Construct the tuple proto to be inserted.
-  const QueryContext::tuple_id tuple_index = query_context_proto_->tuples_size();
+  for (const std::vector<expressions::ScalarLiteralPtr> &tuple : physical_plan->column_values()) {
+    // Construct the tuple proto to be inserted.
+    const QueryContext::tuple_id tuple_index = query_context_proto_->tuples_size();
 
-  S::Tuple *tuple_proto = query_context_proto_->add_tuples();
-  for (const E::ScalarLiteralPtr &literal : physical_plan->column_values()) {
-    tuple_proto->add_attribute_values()->CopyFrom(literal->value().getProto());
-  }
-
-  // FIXME(qzeng): A better way is using a traits struct to look up whether a storage
-  //               block supports ad-hoc insertion instead of hard-coding the block types.
-  const StorageBlockLayout &storage_block_layout =
-      input_relation.getDefaultStorageBlockLayout();
-  if (storage_block_layout.getDescription().tuple_store_description().sub_block_type() ==
-      TupleStorageSubBlockDescription::COMPRESSED_COLUMN_STORE ||
-      storage_block_layout.getDescription().tuple_store_description().sub_block_type() ==
-            TupleStorageSubBlockDescription::COMPRESSED_PACKED_ROW_STORE) {
-    THROW_SQL_ERROR() << "INSERT statement is not supported for the relation "
-                      << input_relation.getName()
-                      << ", because its storage blocks do not support ad-hoc insertion";
-  }
-
-  // Create InsertDestination proto.
-  const QueryContext::insert_destination_id insert_destination_index =
-      query_context_proto_->insert_destinations_size();
-  S::InsertDestination *insert_destination_proto = query_context_proto_->add_insert_destinations();
-
-  insert_destination_proto->set_relation_id(input_relation.getID());
-  insert_destination_proto->mutable_layout()->MergeFrom(
-      input_relation.getDefaultStorageBlockLayout().getDescription());
-
-  if (input_relation.hasPartitionScheme()) {
-    insert_destination_proto->set_insert_destination_type(S::InsertDestinationType::PARTITION_AWARE);
-    insert_destination_proto->MutableExtension(S::PartitionAwareInsertDestination::partition_scheme)
-        ->MergeFrom(input_relation.getPartitionScheme()->getProto());
-  } else {
-    insert_destination_proto->set_insert_destination_type(S::InsertDestinationType::BLOCK_POOL);
-
-    const vector<block_id> blocks(input_relation.getBlocksSnapshot());
-    for (const block_id block : blocks) {
-      insert_destination_proto->AddExtension(S::BlockPoolInsertDestination::blocks, block);
+    S::Tuple *tuple_proto = query_context_proto_->add_tuples();
+    for (const E::ScalarLiteralPtr &literal : tuple) {
+      tuple_proto->add_attribute_values()->CopyFrom(literal->value().getProto());
     }
-  }
 
-  const QueryPlan::DAGNodeIndex insert_operator_index =
-      execution_plan_->addRelationalOperator(
-          new InsertOperator(query_handle_->query_id(),
-                             input_relation,
-                             insert_destination_index,
-                             tuple_index));
-  insert_destination_proto->set_relational_op_index(insert_operator_index);
+    // FIXME(qzeng): A better way is using a traits struct to look up whether a storage
+    //               block supports ad-hoc insertion instead of hard-coding the block types.
+    const StorageBlockLayout &storage_block_layout =
+        input_relation.getDefaultStorageBlockLayout();
+    if (storage_block_layout.getDescription().tuple_store_description().sub_block_type() ==
+        TupleStorageSubBlockDescription::COMPRESSED_COLUMN_STORE ||
+        storage_block_layout.getDescription().tuple_store_description().sub_block_type() ==
+              TupleStorageSubBlockDescription::COMPRESSED_PACKED_ROW_STORE) {
+      THROW_SQL_ERROR() << "INSERT statement is not supported for the relation "
+                        << input_relation.getName()
+                        << ", because its storage blocks do not support ad-hoc insertion";
+    }
 
-  CatalogRelation *mutable_relation =
-      catalog_database_->getRelationByIdMutable(input_relation.getID());
-  const QueryPlan::DAGNodeIndex save_blocks_index =
-      execution_plan_->addRelationalOperator(
-          new SaveBlocksOperator(query_handle_->query_id(), mutable_relation));
-  if (!input_relation_info->isStoredRelation()) {
-    execution_plan_->addDirectDependency(insert_operator_index,
-                                         input_relation_info->producer_operator_index,
-                                         true /* is_pipeline_breaker */);
+    // Create InsertDestination proto.
+    const QueryContext::insert_destination_id insert_destination_index =
+        query_context_proto_->insert_destinations_size();
+    S::InsertDestination *insert_destination_proto = query_context_proto_->add_insert_destinations();
+
+    insert_destination_proto->set_relation_id(input_relation.getID());
+    insert_destination_proto->mutable_layout()->MergeFrom(
+        input_relation.getDefaultStorageBlockLayout().getDescription());
+
+    if (input_relation.hasPartitionScheme()) {
+      insert_destination_proto->set_insert_destination_type(S::InsertDestinationType::PARTITION_AWARE);
+      insert_destination_proto->MutableExtension(S::PartitionAwareInsertDestination::partition_scheme)
+          ->MergeFrom(input_relation.getPartitionScheme()->getProto());
+    } else {
+      insert_destination_proto->set_insert_destination_type(S::InsertDestinationType::BLOCK_POOL);
+
+      const vector<block_id> blocks(input_relation.getBlocksSnapshot());
+      for (const block_id block : blocks) {
+        insert_destination_proto->AddExtension(S::BlockPoolInsertDestination::blocks, block);
+      }
+    }
+
+    const QueryPlan::DAGNodeIndex insert_operator_index =
+        execution_plan_->addRelationalOperator(
+            new InsertOperator(query_handle_->query_id(),
+                               input_relation,
+                               insert_destination_index,
+                               tuple_index));
+    insert_destination_proto->set_relational_op_index(insert_operator_index);
+
+    CatalogRelation *mutable_relation =
+        catalog_database_->getRelationByIdMutable(input_relation.getID());
+    const QueryPlan::DAGNodeIndex save_blocks_index =
+        execution_plan_->addRelationalOperator(
+            new SaveBlocksOperator(query_handle_->query_id(), mutable_relation));
+    if (!input_relation_info->isStoredRelation()) {
+      execution_plan_->addDirectDependency(insert_operator_index,
+                                           input_relation_info->producer_operator_index,
+                                           true /* is_pipeline_breaker */);
+    }
+    execution_plan_->addDirectDependency(save_blocks_index,
+                                         insert_operator_index,
+                                         false /* is_pipeline_breaker */);
   }
-  execution_plan_->addDirectDependency(save_blocks_index,
-                                       insert_operator_index,
-                                       false /* is_pipeline_breaker */);
 }
 
 void ExecutionGenerator::convertInsertSelection(
diff --git a/query_optimizer/logical/InsertTuple.cpp b/query_optimizer/logical/InsertTuple.cpp
index e5ffa35..e2ce196 100644
--- a/query_optimizer/logical/InsertTuple.cpp
+++ b/query_optimizer/logical/InsertTuple.cpp
@@ -41,8 +41,10 @@
   non_container_child_field_names->push_back("input");
   non_container_child_fields->push_back(input_);
 
-  container_child_field_names->push_back("column_values");
-  container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(column_values_));
+  for (const auto &column_values : column_values_) {
+    container_child_field_names->push_back("column_values");
+    container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(column_values));
+  }
 }
 
 }  // namespace logical
diff --git a/query_optimizer/logical/InsertTuple.hpp b/query_optimizer/logical/InsertTuple.hpp
index fd0301e..dd35510 100644
--- a/query_optimizer/logical/InsertTuple.hpp
+++ b/query_optimizer/logical/InsertTuple.hpp
@@ -61,7 +61,7 @@
   /**
    * @return Column values to be used to compose a new tuple.
    */
-  const std::vector<expressions::ScalarLiteralPtr>& column_values() const {
+  const std::vector<std::vector<expressions::ScalarLiteralPtr>>& column_values() const {
     return column_values_;
   }
 
@@ -83,12 +83,12 @@
    * @brief Creates an InsertTuple logical node.
    *
    * @param input The input produces the relation to insert the tuple to.
-   * @param column_values The column values of the tuple to be inserted.
+   * @param column_values The column values of the tuples to be inserted.
    * @return An immutable InsertTuple node.
    */
   static InsertTuplePtr Create(
       const LogicalPtr &input,
-      const std::vector<expressions::ScalarLiteralPtr> &column_values) {
+      const std::vector<std::vector<expressions::ScalarLiteralPtr>> &column_values) {
     return InsertTuplePtr(new InsertTuple(input, column_values));
   }
 
@@ -103,13 +103,13 @@
 
  private:
   InsertTuple(const LogicalPtr &input,
-              const std::vector<expressions::ScalarLiteralPtr> &column_values)
+              const std::vector<std::vector<expressions::ScalarLiteralPtr>> &column_values)
       : input_(input), column_values_(column_values) {
     addChild(input_);
   }
 
   LogicalPtr input_;
-  std::vector<expressions::ScalarLiteralPtr> column_values_;
+  std::vector<std::vector<expressions::ScalarLiteralPtr>> column_values_;
 
   DISALLOW_COPY_AND_ASSIGN(InsertTuple);
 };
diff --git a/query_optimizer/physical/InsertTuple.cpp b/query_optimizer/physical/InsertTuple.cpp
index 3085389..b209aa0 100644
--- a/query_optimizer/physical/InsertTuple.cpp
+++ b/query_optimizer/physical/InsertTuple.cpp
@@ -40,8 +40,10 @@
   non_container_child_field_names->push_back("input");
   non_container_child_fields->push_back(input_);
 
-  container_child_field_names->push_back("column_values");
-  container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(column_values_));
+  for (const auto &column_values : column_values_) {
+    container_child_field_names->push_back("column_values");
+    container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(column_values));
+  }
 }
 
 }  // namespace physical
diff --git a/query_optimizer/physical/InsertTuple.hpp b/query_optimizer/physical/InsertTuple.hpp
index 40f2582..10c7c5b 100644
--- a/query_optimizer/physical/InsertTuple.hpp
+++ b/query_optimizer/physical/InsertTuple.hpp
@@ -69,7 +69,7 @@
   /**
    * @return Column values to be used to compose a new tuple.
    */
-  const std::vector<expressions::ScalarLiteralPtr>& column_values() const {
+  const std::vector<std::vector<expressions::ScalarLiteralPtr>>& column_values() const {
     return column_values_;
   }
 
@@ -103,7 +103,7 @@
    */
   static InsertTuplePtr Create(
       const PhysicalPtr &input,
-      const std::vector<expressions::ScalarLiteralPtr> &column_values) {
+      const std::vector<std::vector<expressions::ScalarLiteralPtr>> &column_values) {
     return InsertTuplePtr(new InsertTuple(input, column_values));
   }
 
@@ -118,13 +118,13 @@
 
  private:
   InsertTuple(const PhysicalPtr &input,
-              const std::vector<expressions::ScalarLiteralPtr> &column_values)
+              const std::vector<std::vector<expressions::ScalarLiteralPtr>> &column_values)
       : input_(input), column_values_(column_values) {
     addChild(input_);
   }
 
   PhysicalPtr input_;
-  std::vector<expressions::ScalarLiteralPtr> column_values_;
+  std::vector<std::vector<expressions::ScalarLiteralPtr>> column_values_;
 
   DISALLOW_COPY_AND_ASSIGN(InsertTuple);
 };
diff --git a/query_optimizer/resolver/Resolver.cpp b/query_optimizer/resolver/Resolver.cpp
index 2991568..0b6dc22 100644
--- a/query_optimizer/resolver/Resolver.cpp
+++ b/query_optimizer/resolver/Resolver.cpp
@@ -1060,73 +1060,81 @@
   // Resolve column values.
   const std::vector<E::AttributeReferencePtr> relation_attributes =
       input_logical->getOutputAttributes();
-  const PtrList<ParseScalarLiteral> &parse_column_values =
+  const PtrList<PtrList<ParseScalarLiteral>> &parse_column_values_list =
       insert_statement.getLiteralValues();
-  DCHECK_GT(parse_column_values.size(), 0u);
 
-  if (parse_column_values.size() > relation_attributes.size()) {
-    THROW_SQL_ERROR_AT(insert_statement.relation_name())
-        << "The relation " << insert_statement.relation_name()->value()
-        << " has " << std::to_string(relation_attributes.size())
-        << " columns, but " << std::to_string(parse_column_values.size())
-        << " values are provided";
-  }
+  std::vector<std::vector<E::ScalarLiteralPtr>> resolved_column_values_list;
+  DCHECK_GT(parse_column_values_list.size(), 0u);
 
-  std::vector<E::ScalarLiteralPtr> resolved_column_values;
-  std::vector<E::AttributeReferencePtr>::size_type aid = 0;
-  for (const ParseScalarLiteral &parse_literal_value : parse_column_values) {
-    E::ScalarLiteralPtr resolved_literal_value;
-    ExpressionResolutionInfo expr_resolution_info(
-        name_resolver,
-        "INSERT statement" /* clause_name */,
-        nullptr /* select_list_info */);
-    // When resolving the literal, use the attribute's Type as a hint.
-    CHECK(E::SomeScalarLiteral::MatchesWithConditionalCast(
-        resolveExpression(parse_literal_value,
-                          &(relation_attributes[aid]->getValueType()),
-                          &expr_resolution_info),
-        &resolved_literal_value));
+  for (const PtrList<ParseScalarLiteral> &parse_column_values : parse_column_values_list) {
+    DCHECK_GT(parse_column_values.size(), 0u);
 
-    // Check that the resolved Type is safely coercible to the attribute's
-    // Type.
-    if (!relation_attributes[aid]->getValueType().isSafelyCoercibleFrom(
-            resolved_literal_value->getValueType())) {
-      THROW_SQL_ERROR_AT(&parse_literal_value)
-          << "The assigned value for the column "
-          << relation_attributes[aid]->attribute_name() << " has the type "
-          << resolved_literal_value->getValueType().getName()
-          << ", which cannot be safely coerced to the column's type "
-          << relation_attributes[aid]->getValueType().getName();
-    }
-
-    // If the Type is not exactly right (but is safely coercible), coerce it.
-    if (!resolved_literal_value->getValueType().equals(
-            relation_attributes[aid]->getValueType())) {
-      resolved_literal_value = E::ScalarLiteral::Create(
-          relation_attributes[aid]->getValueType().coerceValue(
-              resolved_literal_value->value(),
-              resolved_literal_value->getValueType()),
-          relation_attributes[aid]->getValueType());
-    }
-
-    resolved_column_values.push_back(resolved_literal_value);
-    ++aid;
-  }
-
-  while (aid < relation_attributes.size()) {
-    if (!relation_attributes[aid]->getValueType().isNullable()) {
+    if (parse_column_values.size() > relation_attributes.size()) {
       THROW_SQL_ERROR_AT(insert_statement.relation_name())
-          << "Must assign a non-NULL value to column "
-          << relation_attributes[aid]->attribute_name();
+          << "The relation " << insert_statement.relation_name()->value()
+          << " has " << std::to_string(relation_attributes.size())
+          << " columns, but " << std::to_string(parse_column_values.size())
+          << " values are provided";
     }
-    // Create a NULL value.
-    resolved_column_values.push_back(E::ScalarLiteral::Create(
-        relation_attributes[aid]->getValueType().makeNullValue(),
-        relation_attributes[aid]->getValueType()));
-    ++aid;
+
+    std::vector<E::ScalarLiteralPtr> resolved_column_values;
+    std::vector<E::AttributeReferencePtr>::size_type aid = 0;
+    for (const ParseScalarLiteral &parse_literal_value : parse_column_values) {
+      E::ScalarLiteralPtr resolved_literal_value;
+      ExpressionResolutionInfo expr_resolution_info(
+          name_resolver,
+          "INSERT statement" /* clause_name */,
+          nullptr /* select_list_info */);
+      // When resolving the literal, use the attribute's Type as a hint.
+      CHECK(E::SomeScalarLiteral::MatchesWithConditionalCast(
+          resolveExpression(parse_literal_value,
+                            &(relation_attributes[aid]->getValueType()),
+                            &expr_resolution_info),
+          &resolved_literal_value));
+
+      // Check that the resolved Type is safely coercible to the attribute's
+      // Type.
+      if (!relation_attributes[aid]->getValueType().isSafelyCoercibleFrom(
+              resolved_literal_value->getValueType())) {
+        THROW_SQL_ERROR_AT(&parse_literal_value)
+            << "The assigned value for the column "
+            << relation_attributes[aid]->attribute_name() << " has the type "
+            << resolved_literal_value->getValueType().getName()
+            << ", which cannot be safely coerced to the column's type "
+            << relation_attributes[aid]->getValueType().getName();
+      }
+
+      // If the Type is not exactly right (but is safely coercible), coerce it.
+      if (!resolved_literal_value->getValueType().equals(
+              relation_attributes[aid]->getValueType())) {
+        resolved_literal_value = E::ScalarLiteral::Create(
+            relation_attributes[aid]->getValueType().coerceValue(
+                resolved_literal_value->value(),
+                resolved_literal_value->getValueType()),
+            relation_attributes[aid]->getValueType());
+      }
+
+      resolved_column_values.push_back(resolved_literal_value);
+      ++aid;
+    }
+
+    while (aid < relation_attributes.size()) {
+      if (!relation_attributes[aid]->getValueType().isNullable()) {
+        THROW_SQL_ERROR_AT(insert_statement.relation_name())
+            << "Must assign a non-NULL value to column "
+            << relation_attributes[aid]->attribute_name();
+      }
+      // Create a NULL value.
+      resolved_column_values.push_back(E::ScalarLiteral::Create(
+          relation_attributes[aid]->getValueType().makeNullValue(),
+          relation_attributes[aid]->getValueType()));
+      ++aid;
+    }
+
+    resolved_column_values_list.push_back(std::move(resolved_column_values));
   }
 
-  return L::InsertTuple::Create(input_logical, resolved_column_values);
+  return L::InsertTuple::Create(input_logical, resolved_column_values_list);
 }
 
 L::LogicalPtr Resolver::resolveUpdate(
