You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by ha...@apache.org on 2016/06/23 18:31:25 UTC

[2/3] incubator-quickstep git commit: Updated preprocessed lexer and parser files.

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/0a3e43f2/parser/preprocessed/SqlParser_gen.cpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlParser_gen.cpp b/parser/preprocessed/SqlParser_gen.cpp
index 038db14..c3f48ae 100644
--- a/parser/preprocessed/SqlParser_gen.cpp
+++ b/parser/preprocessed/SqlParser_gen.cpp
@@ -3109,148 +3109,148 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 585 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 585 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     *parsedStatement = (yyvsp[-1].statement_);
     YYACCEPT;
   }
-#line 3118 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3118 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 3:
-#line 589 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 589 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     *parsedStatement = (yyvsp[-1].statement_);
     YYACCEPT;
   }
-#line 3127 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3127 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 4:
-#line 593 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 593 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     *parsedStatement = (yyvsp[-1].command_);
     YYACCEPT;
   }
-#line 3136 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3136 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 5:
-#line 597 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 597 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     *parsedStatement = (yyvsp[-1].command_);
     YYACCEPT;
   }
-#line 3145 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3145 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 6:
-#line 601 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 601 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     YYABORT;
   }
-#line 3153 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3153 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 7:
-#line 604 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 604 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     // Regular yyparse() return codes are non-negative, so use a negative one here.
     return -1;
   }
-#line 3162 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3162 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 8:
-#line 611 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 611 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].statement_);
   }
-#line 3170 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3170 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 9:
-#line 614 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 614 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].copy_from_statement_);
   }
-#line 3178 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3178 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 10:
-#line 617 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 617 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].create_table_statement_);
   }
-#line 3186 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3186 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 11:
-#line 620 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 620 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].statement_);
   }
-#line 3194 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3194 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 623 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 623 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].delete_statement_);
   }
-#line 3202 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3202 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 626 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 626 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].drop_table_statement_);
   }
-#line 3210 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3210 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 629 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 629 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].insert_statement_);
   }
-#line 3218 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3218 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 632 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 632 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].quit_statement_);
   }
-#line 3226 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3226 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 635 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 635 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].select_statement_);
   }
-#line 3234 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3234 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 638 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 638 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.statement_) = (yyvsp[0].update_statement_);
   }
-#line 3242 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3242 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 644 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 644 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.quit_statement_) = new quickstep::ParseStatementQuit((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 3250 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3250 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 650 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 650 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-3].string_value_);
     delete (yyvsp[0].attribute_definition_);
@@ -3258,22 +3258,22 @@ yyreduce:
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3262 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3262 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 657 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 657 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-3].string_value_);
     (yyval.statement_) = nullptr;
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3273 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3273 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 21:
-#line 663 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 663 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-3].string_value_);
     delete (yyvsp[0].string_value_);
@@ -3281,11 +3281,11 @@ yyreduce:
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3285 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3285 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 22:
-#line 670 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 670 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-3].string_value_);
     delete (yyvsp[0].string_value_);
@@ -3293,19 +3293,19 @@ yyreduce:
     NotSupported(&(yylsp[-5]), yyscanner, "ALTER statements");
     YYERROR;
   }
-#line 3297 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3297 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 23:
-#line 679 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 679 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 3305 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3305 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 24:
-#line 684 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 684 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     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_));
@@ -3313,153 +3313,153 @@ yyreduce:
       (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 3317 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3317 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 693 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 693 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.drop_table_statement_) = new quickstep::ParseStatementDropTable((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].string_value_));
   }
-#line 3325 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3325 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 26:
-#line 698 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 698 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 3333 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3333 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 703 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 703 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_definition_list_) = new quickstep::PtrList<quickstep::ParseAttributeDefinition>();
     (yyval.attribute_definition_list_)->push_back((yyvsp[0].attribute_definition_));
   }
-#line 3342 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3342 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 707 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 707 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_definition_list_) = (yyvsp[-2].attribute_definition_list_);
     (yyval.attribute_definition_list_)->push_back((yyvsp[0].attribute_definition_));
   }
-#line 3351 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3351 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 713 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 713 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = nullptr;
     NotSupported(&(yylsp[0]), yyscanner, "BIT data type");
     YYERROR;
   }
-#line 3361 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3361 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 30:
-#line 718 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 718 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetime));
   }
-#line 3369 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3369 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 31:
-#line 721 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 721 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetime));
   }
-#line 3377 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3377 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 32:
-#line 724 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 724 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = nullptr;
     NotSupported(&(yylsp[0]), yyscanner, "TIME data type");
     YYERROR;
   }
-#line 3387 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3387 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 33:
-#line 729 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 729 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetime));
   }
-#line 3395 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3395 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 34:
-#line 732 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 732 "../SqlParser.ypp" /* yacc.c:1646  */
     {
-    (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDouble));
+    (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDecimal));
   }
-#line 3403 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3403 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 35:
-#line 735 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 735 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDouble));
   }
-#line 3411 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3411 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 36:
-#line 738 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 738 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDouble));
   }
-#line 3419 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3419 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 37:
-#line 741 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 741 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kFloat));
   }
-#line 3427 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3427 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 38:
-#line 744 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 744 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kInt));
   }
-#line 3435 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3435 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 39:
-#line 747 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 747 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kInt));
   }
-#line 3443 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3443 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 40:
-#line 750 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 750 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kLong));
   }
-#line 3451 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3451 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 41:
-#line 753 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 753 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kLong));
   }
-#line 3459 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3459 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 42:
-#line 756 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 756 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     /**
      * NOTE(chasseur): This pattern exhibits a shift/reduce conflict with the
@@ -3472,27 +3472,27 @@ yyreduce:
         "or YEARMONTH INTERVAL");
     YYERROR;
   }
-#line 3476 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3476 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 43:
-#line 768 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 768 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kDatetimeInterval));
   }
-#line 3484 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3484 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 44:
-#line 771 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 771 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.data_type_) = new quickstep::ParseDataType(quickstep::TypeFactory::GetType(quickstep::kYearMonthInterval));
   }
-#line 3492 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3492 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 45:
-#line 774 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 774 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[-1].numeric_literal_value_)->float_like()) {
       delete (yyvsp[-1].numeric_literal_value_);
@@ -3511,11 +3511,11 @@ yyreduce:
       }
     }
   }
-#line 3515 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3515 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 46:
-#line 792 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 792 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[-1].numeric_literal_value_)->float_like()) {
       delete (yyvsp[-1].numeric_literal_value_);
@@ -3534,69 +3534,69 @@ yyreduce:
       }
     }
   }
-#line 3538 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3538 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 47:
-#line 812 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 812 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = new quickstep::ParseColumnConstraintNull((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 3546 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3546 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 48:
-#line 815 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 815 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = new quickstep::ParseColumnConstraintNotNull((yylsp[-1]).first_line, (yylsp[-1]).first_column);
   }
-#line 3554 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3554 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 49:
-#line 818 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 818 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = nullptr;
     NotSupported(&(yylsp[0]), yyscanner, "Column Constraints (UNIQUE)");
     YYERROR;
   }
-#line 3564 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3564 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 50:
-#line 823 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 823 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = nullptr;
     NotSupported(&(yylsp[-1]), yyscanner, "Column Constraints (PRIMARY KEY)");
     YYERROR;
   }
-#line 3574 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3574 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 51:
-#line 828 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 828 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = nullptr;
     delete (yyvsp[0].literal_value_);
     NotSupported(&(yylsp[-1]), yyscanner, "Column Constraints (DEFAULT)");
     YYERROR;
   }
-#line 3585 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3585 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 52:
-#line 834 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 834 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = nullptr;
     delete (yyvsp[-1].predicate_);
     NotSupported(&(yylsp[-3]), yyscanner, "Column Constraints (CHECK)");
     YYERROR;
   }
-#line 3596 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3596 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 53:
-#line 840 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 840 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_) = nullptr;
     delete (yyvsp[-3].string_value_);
@@ -3604,65 +3604,65 @@ yyreduce:
     NotSupported(&(yylsp[-4]), yyscanner, "Foreign Keys");
     YYERROR;
   }
-#line 3608 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3608 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 54:
-#line 849 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 849 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_list_) = (yyvsp[-1].column_constraint_list_);
     (yyval.column_constraint_list_)->push_back((yyvsp[0].column_constraint_));
   }
-#line 3617 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3617 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 55:
-#line 853 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 853 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_list_) = new quickstep::PtrList<quickstep::ParseColumnConstraint>();
     (yyval.column_constraint_list_)->push_back((yyvsp[0].column_constraint_));
   }
-#line 3626 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3626 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 56:
-#line 859 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 859 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_list_) = nullptr;
   }
-#line 3634 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3634 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 57:
-#line 862 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 862 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.column_constraint_list_) = (yyvsp[0].column_constraint_list_);
   }
-#line 3642 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3642 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 867 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 867 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-1].string_list_);
     NotSupported(&(yylsp[-3]), yyscanner, "Table Constraints (UNIQUE)");
     YYERROR;
   }
-#line 3652 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3652 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 59:
-#line 872 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 872 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-1].string_list_);
     NotSupported(&(yylsp[-4]), yyscanner, "Table Constraints (PRIMARY KEY)");
     YYERROR;
   }
-#line 3662 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3662 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 60:
-#line 877 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 877 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-6].string_list_);
     delete (yyvsp[-3].string_value_);
@@ -3670,95 +3670,95 @@ yyreduce:
     NotSupported(&(yylsp[-9]), yyscanner, "Table Constraints (FOREIGN KEY)");
     YYERROR;
   }
-#line 3674 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3674 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 61:
-#line 884 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 884 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-1].predicate_);
     NotSupported(&(yylsp[-3]), yyscanner, "Table Constraints (CHECK)");
     YYERROR;
   }
-#line 3684 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3684 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 62:
-#line 891 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 891 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     NotSupported(&(yylsp[-2]), yyscanner, "Table Constraints");
     YYERROR;
   }
-#line 3693 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3693 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 895 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 895 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     NotSupported(&(yylsp[0]), yyscanner, "Table Constraints");
     YYERROR;
   }
-#line 3702 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3702 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 64:
-#line 901 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 901 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     /* $$ = nullptr; */
   }
-#line 3710 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3710 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 65:
-#line 904 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 904 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     /* $$ = $1; */
   }
-#line 3718 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3718 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 66:
-#line 909 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 909 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_list_) = nullptr;
   }
-#line 3726 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3726 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 67:
-#line 912 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 912 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_list_) = (yyvsp[-1].attribute_list_);
   }
-#line 3734 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3734 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 917 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 917 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.block_properties_) = nullptr;
   }
-#line 3742 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3742 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 69:
-#line 920 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 920 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.block_properties_) = new quickstep::ParseBlockProperties((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-1].key_value_list_));
   }
-#line 3750 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3750 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 925 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 925 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.partition_clause_) = nullptr;
   }
-#line 3758 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3758 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 71:
-#line 928 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 928 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -3776,97 +3776,97 @@ yyreduce:
       }
     }
   }
-#line 3780 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3780 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 947 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 947 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::PartitionSchemeHeader::PartitionType::kHash));
   }
-#line 3789 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3789 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 951 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 951 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::PartitionSchemeHeader::PartitionType::kRange));
   }
-#line 3798 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3798 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 74:
-#line 957 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 957 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_list_) = new quickstep::PtrList<quickstep::ParseKeyValue>();
     (yyval.key_value_list_)->push_back((yyvsp[0].key_value_));
   }
-#line 3807 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3807 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 75:
-#line 961 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 961 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_list_) = (yyvsp[-2].key_value_list_);
     (yyval.key_value_list_)->push_back((yyvsp[0].key_value_));
   }
-#line 3816 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3816 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 76:
-#line 967 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 967 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_) = (yyvsp[0].key_string_value_);
   }
-#line 3824 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3824 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 77:
-#line 970 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 970 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_) = (yyvsp[0].key_string_list_);
   }
-#line 3832 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3832 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 78:
-#line 973 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 973 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_) = (yyvsp[0].key_integer_value_);
   }
-#line 3840 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3840 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 79:
-#line 978 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 978 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_string_value_) = new quickstep::ParseKeyStringValue((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].string_value_));
   }
-#line 3848 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3848 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 80:
-#line 981 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 981 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     // 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 3858 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3858 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 81:
-#line 988 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 988 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_string_list_) = new quickstep::ParseKeyStringList((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].string_list_));
   }
-#line 3866 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3866 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 82:
-#line 993 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 993 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -3876,64 +3876,64 @@ yyreduce:
     }
     (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 3880 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3880 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 83:
-#line 1004 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1004 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     // 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 3890 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3890 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 84:
-#line 1009 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1009 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kBloomFilter));
   }
-#line 3899 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3899 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 85:
-#line 1013 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1013 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kCSBTree));
   }
-#line 3908 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3908 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 86:
-#line 1017 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1017 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column,
            std::to_string(quickstep::IndexSubBlockType::kSMA));
   }
-#line 3917 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3917 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 87:
-#line 1023 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1023 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_list_) = nullptr;
   }
-#line 3925 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3925 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 88:
-#line 1026 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1026 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.key_value_list_) = (yyvsp[-1].key_value_list_);
   }
-#line 3933 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3933 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 89:
-#line 1032 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1032 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-7].string_value_);
     delete (yyvsp[-5].string_list_);
@@ -3942,557 +3942,557 @@ yyreduce:
     NotSupported(&(yylsp[-6]), yyscanner, "list of column names in INSERT statement");
     YYERROR;
   }
-#line 3946 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3946 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 90:
-#line 1040 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1040 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.insert_statement_) = new quickstep::ParseStatementInsertTuple((yylsp[-6]).first_line, (yylsp[-6]).first_column, (yyvsp[-4].string_value_), (yyvsp[-1].literal_value_list_));
   }
-#line 3954 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3954 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 91:
-#line 1043 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1043 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.insert_statement_) = new quickstep::ParseStatementInsertSelection((yylsp[-3]).first_line, (yylsp[-2]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].select_query_), nullptr);
   }
-#line 3962 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3962 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 92:
-#line 1046 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1046 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 3970 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3970 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 93:
-#line 1052 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1052 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_statement_) = new quickstep::ParseStatementCopyFrom((yylsp[-4]).first_line, (yylsp[-4]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].string_value_), (yyvsp[0].copy_from_params_));
   }
-#line 3978 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3978 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 94:
-#line 1057 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1057 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_params_) = nullptr;
   }
-#line 3986 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3986 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 95:
-#line 1060 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1060 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_params_) = (yyvsp[-1].copy_from_params_);
   }
-#line 3994 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 3994 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 96:
-#line 1065 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1065 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_params_) = new quickstep::ParseCopyFromParams((yylsp[-1]).first_line, (yylsp[-1]).first_column);
     (yyval.copy_from_params_)->set_delimiter((yyvsp[0].string_value_));
   }
-#line 4003 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4003 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 97:
-#line 1069 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1069 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_params_) = new quickstep::ParseCopyFromParams((yylsp[-1]).first_line, (yylsp[-1]).first_column);
     (yyval.copy_from_params_)->escape_strings = (yyvsp[0].boolean_value_);
   }
-#line 4012 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4012 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 98:
-#line 1073 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1073 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_params_) = (yyvsp[-3].copy_from_params_);
     (yyval.copy_from_params_)->set_delimiter((yyvsp[0].string_value_));
   }
-#line 4021 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4021 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 1077 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1077 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.copy_from_params_) = (yyvsp[-3].copy_from_params_);
     (yyval.copy_from_params_)->escape_strings = (yyvsp[0].boolean_value_);
   }
-#line 4030 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4030 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 1083 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1083 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4038 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4038 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 101:
-#line 1088 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1088 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.delete_statement_) = new quickstep::ParseStatementDelete((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].predicate_));
   }
-#line 4046 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4046 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 102:
-#line 1093 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1093 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.assignment_list_) = (yyvsp[-2].assignment_list_);
     (yyval.assignment_list_)->push_back((yyvsp[0].assignment_));
   }
-#line 4055 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4055 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 103:
-#line 1097 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1097 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.assignment_list_) = new quickstep::PtrList<quickstep::ParseAssignment>();
     (yyval.assignment_list_)->push_back((yyvsp[0].assignment_));
   }
-#line 4064 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4064 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 104:
-#line 1103 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1103 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.assignment_) = new quickstep::ParseAssignment((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].string_value_), (yyvsp[0].expression_));
   }
-#line 4072 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4072 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 105:
-#line 1109 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1109 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.select_statement_) = new quickstep::ParseStatementSelect((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].select_query_), nullptr);
   }
-#line 4080 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4080 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 106:
-#line 1112 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1112 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.select_statement_) = new quickstep::ParseStatementSelect((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].select_query_), (yyvsp[-1].with_list_));
   }
-#line 4088 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4088 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 107:
-#line 1117 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1117 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.with_list_) = (yyvsp[0].with_list_);
   }
-#line 4096 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4096 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 108:
-#line 1122 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1122 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.with_list_) = new quickstep::PtrVector<quickstep::ParseSubqueryTableReference>();
     (yyval.with_list_)->push_back((yyvsp[0].with_list_element_));
   }
-#line 4105 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4105 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 109:
-#line 1126 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1126 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.with_list_) = (yyvsp[-2].with_list_);
     (yyval.with_list_)->push_back((yyvsp[0].with_list_element_));
   }
-#line 4114 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4114 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 110:
-#line 1132 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1132 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4123 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4123 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 111:
-#line 1139 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1139 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.select_query_) = new quickstep::ParseSelect((yylsp[-8]).first_line, (yylsp[-8]).first_column, (yyvsp[-6].selection_), (yyvsp[-5].table_reference_list_), (yyvsp[-4].predicate_), (yyvsp[-3].opt_group_by_clause_), (yyvsp[-2].opt_having_clause_), (yyvsp[-1].opt_order_by_clause_), (yyvsp[0].opt_limit_clause_));
   }
-#line 4131 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4131 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 112:
-#line 1144 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1144 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     /* $$ = nullptr; */
   }
-#line 4139 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4139 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 1147 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1147 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     NotSupported(&(yylsp[0]), yyscanner, "ALL in selection");
     YYERROR;
   }
-#line 4148 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4148 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 1151 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1151 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     NotSupported(&(yylsp[0]), yyscanner, "DISTINCT in selection");
     YYERROR;
   }
-#line 4157 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4157 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 115:
-#line 1157 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1157 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_) = new quickstep::ParseSelectionStar((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 4165 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4165 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 116:
-#line 1160 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1160 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_) = (yyvsp[0].selection_list_);
   }
-#line 4173 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4173 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 117:
-#line 1165 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1165 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_list_) = new quickstep::ParseSelectionList((yylsp[0]).first_line, (yylsp[0]).first_column);
     (yyval.selection_list_)->add((yyvsp[0].selection_item_));
   }
-#line 4182 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4182 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 118:
-#line 1169 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1169 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_list_) = (yyvsp[-2].selection_list_);
     (yyval.selection_list_)->add((yyvsp[0].selection_item_));
   }
-#line 4191 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4191 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 119:
-#line 1175 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1175 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_item_) = new quickstep::ParseSelectionItem((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-2].expression_), (yyvsp[0].string_value_));
   }
-#line 4199 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4199 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 120:
-#line 1178 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1178 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_item_) = new quickstep::ParseSelectionItem((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].expression_), (yyvsp[0].string_value_));
   }
-#line 4207 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4207 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 121:
-#line 1181 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1181 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.selection_item_) = new quickstep::ParseSelectionItem((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].expression_));
   }
-#line 4215 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4215 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 122:
-#line 1186 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1186 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_list_) = (yyvsp[0].table_reference_list_);
   }
-#line 4223 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4223 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 123:
-#line 1191 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1191 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.subquery_expression_) = new quickstep::ParseSubqueryExpression((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[-1].select_query_));
   }
-#line 4231 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4231 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 124:
-#line 1196 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1196 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_sample_clause_) = NULL;
   }
-#line 4239 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4239 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 125:
-#line 1199 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1199 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_sample_clause_) = new quickstep::ParseSample((yylsp[-2]).first_line, (yylsp[-2]).first_column, true, (yyvsp[-1].numeric_literal_value_));
   }
-#line 4247 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4247 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 126:
-#line 1202 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1202 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_sample_clause_) = new quickstep::ParseSample((yylsp[-2]).first_line, (yylsp[-2]).first_column, false, (yyvsp[-1].numeric_literal_value_));
   }
-#line 4255 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4255 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 127:
-#line 1207 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1207 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kInnerJoin;
   }
-#line 4263 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4263 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 1210 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1210 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kInnerJoin;
   }
-#line 4271 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4271 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 1213 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1213 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kLeftOuterJoin;
   }
-#line 4279 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4279 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 130:
-#line 1216 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1216 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kLeftOuterJoin;
   }
-#line 4287 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4287 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 1219 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1219 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kRightOuterJoin;
   }
-#line 4295 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4295 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 132:
-#line 1222 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1222 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kRightOuterJoin;
   }
-#line 4303 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4303 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 1225 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1225 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kFullOuterJoin;
   }
-#line 4311 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4311 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 1228 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1228 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.join_type_) = quickstep::ParseJoinedTableReference::JoinType::kFullOuterJoin;
   }
-#line 4319 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4319 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 135:
-#line 1233 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1233 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4327 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4327 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 136:
-#line 1236 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1236 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_) = (yyvsp[0].table_reference_);
   }
-#line 4335 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4335 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 137:
-#line 1241 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1241 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4344 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4344 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 138:
-#line 1245 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1245 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4353 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4353 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 139:
-#line 1249 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1249 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_) = new quickstep::ParseSimpleTableReference((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-1].string_value_), (yyvsp[0].opt_sample_clause_));
   }
-#line 4361 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4361 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 140:
-#line 1252 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1252 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4370 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4370 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 141:
-#line 1256 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1256 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_) = new quickstep::ParseGeneratorTableReference((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].function_call_));
   }
-#line 4378 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4378 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 142:
-#line 1259 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1259 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_) = (yyvsp[-1].table_reference_);
   }
-#line 4386 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4386 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 143:
-#line 1264 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1264 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_signature_) = (yyvsp[0].table_reference_signature_);
   }
-#line 4394 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4394 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 144:
-#line 1267 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1267 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_signature_) = (yyvsp[0].table_reference_signature_);
   }
-#line 4402 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4402 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 145:
-#line 1272 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1272 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_signature_) = new ::quickstep::ParseTableReferenceSignature((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].string_value_));
   }
-#line 4410 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4410 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 146:
-#line 1275 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1275 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_signature_) = new ::quickstep::ParseTableReferenceSignature((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].string_list_));
   }
-#line 4418 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4418 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 147:
-#line 1280 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1280 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_list_) = new quickstep::PtrList<quickstep::ParseTableReference>();
     (yyval.table_reference_list_)->push_back((yyvsp[0].table_reference_));
   }
-#line 4427 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4427 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 148:
-#line 1284 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1284 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.table_reference_list_) = (yyvsp[-2].table_reference_list_);
     (yyval.table_reference_list_)->push_back((yyvsp[0].table_reference_));
   }
-#line 4436 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4436 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 149:
-#line 1290 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1290 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_group_by_clause_) = nullptr;
   }
-#line 4444 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4444 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 150:
-#line 1293 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1293 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_group_by_clause_) = new quickstep::ParseGroupBy((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].expression_list_));
   }
-#line 4452 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4452 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 1298 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1298 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_having_clause_) = nullptr;
   }
-#line 4460 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4460 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 1301 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1301 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_having_clause_) = new quickstep::ParseHaving((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].predicate_));
   }
-#line 4468 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4468 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 153:
-#line 1306 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1306 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_order_by_clause_) = nullptr;
   }
-#line 4476 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4476 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 154:
-#line 1309 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1309 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_order_by_clause_) = new quickstep::ParseOrderBy((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].order_commalist_));
   }
-#line 4484 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4484 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 155:
-#line 1314 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1314 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.opt_limit_clause_) = nullptr;
   }
-#line 4492 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4492 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 156:
-#line 1317 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1317 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[0].numeric_literal_value_)->float_like()) {
       delete (yyvsp[0].numeric_literal_value_);
@@ -4510,111 +4510,111 @@ yyreduce:
       }
     }
   }
-#line 4514 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4514 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 157:
-#line 1336 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1336 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_commalist_) = new quickstep::PtrList<quickstep::ParseOrderByItem>();
     (yyval.order_commalist_)->push_back((yyvsp[0].order_item_));
   }
-#line 4523 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4523 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 1340 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1340 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_commalist_) = (yyvsp[-2].order_commalist_);
     (yyval.order_commalist_)->push_back((yyvsp[0].order_item_));
   }
-#line 4532 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4532 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 1346 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1346 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4542 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4542 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 160:
-#line 1353 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1353 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_direction_) = nullptr;
   }
-#line 4550 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4550 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 161:
-#line 1356 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1356 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_direction_) = new bool(true);
   }
-#line 4558 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4558 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 162:
-#line 1359 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1359 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_direction_) = new bool(false);
   }
-#line 4566 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4566 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 163:
-#line 1364 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1364 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_direction_) = nullptr;
   }
-#line 4574 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4574 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 164:
-#line 1367 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1367 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_direction_) = new bool(true);
   }
-#line 4582 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4582 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 165:
-#line 1370 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1370 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.order_direction_) = new bool(false);
   }
-#line 4590 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4590 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 166:
-#line 1376 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1376 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = nullptr;
   }
-#line 4598 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4598 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 167:
-#line 1379 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1379 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 4606 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4606 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 168:
-#line 1384 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1384 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 4614 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4614 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 1389 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1389 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[-2].predicate_)->getParsePredicateType() == quickstep::ParsePredicate::kDisjunction) {
       (yyval.predicate_) = (yyvsp[-2].predicate_);
@@ -4624,19 +4624,19 @@ yyreduce:
     }
     static_cast<quickstep::ParsePredicateDisjunction *>((yyval.predicate_))->addPredicate((yyvsp[0].predicate_));
   }
-#line 4628 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4628 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 170:
-#line 1398 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1398 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 4636 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4636 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 1403 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1403 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     if ((yyvsp[-2].predicate_)->getParsePredicateType() == quickstep::ParsePredicate::kConjunction) {
       (yyval.predicate_) = (yyvsp[-2].predicate_);
@@ -4646,435 +4646,435 @@ yyreduce:
     }
     static_cast<quickstep::ParsePredicateConjunction *>((yyval.predicate_))->addPredicate((yyvsp[0].predicate_));
   }
-#line 4650 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4650 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 172:
-#line 1412 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1412 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 4658 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4658 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 173:
-#line 1417 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1417 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateNegation((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].predicate_));
   }
-#line 4666 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4666 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 174:
-#line 1420 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1420 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = (yyvsp[0].predicate_);
   }
-#line 4674 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4674 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 175:
-#line 1425 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1425 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateBetween((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-4].expression_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 4682 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4682 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 176:
-#line 1428 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1428 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4692 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4692 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 177:
-#line 1433 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1433 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-3].attribute_);
     (yyval.predicate_) = nullptr;
     NotSupported(&(yylsp[-2]), yyscanner, "NULL comparison predicates");
     YYERROR;
   }
-#line 4703 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4703 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 178:
-#line 1439 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1439 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     delete (yyvsp[-2].attribute_);
     (yyval.predicate_) = nullptr;
     NotSupported(&(yylsp[-1]), yyscanner, "NULL comparison predicates");
     YYERROR;
   }
-#line 4714 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4714 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 179:
-#line 1445 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1445 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateComparison((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].comparison_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 4722 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4722 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 180:
-#line 1448 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1448 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = (yyvsp[-1].predicate_);
   }
-#line 4730 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4730 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 181:
-#line 1451 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1451 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateExists((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[0].subquery_expression_));
   }
-#line 4738 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4738 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 182:
-#line 1454 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1454 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateInTableQuery((yylsp[-1]).first_line, (yylsp[-1]).first_column, (yyvsp[-2].expression_), (yyvsp[0].subquery_expression_));
   }
-#line 4746 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4746 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 183:
-#line 1457 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1457 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.predicate_) = new quickstep::ParsePredicateInValueList((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-4].expression_), (yyvsp[-1].expression_list_));
   }
-#line 4754 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4754 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 184:
-#line 1460 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1460 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4765 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4765 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 185:
-#line 1466 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1466 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4776 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4776 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 186:
-#line 1475 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1475 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseBinaryExpression((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].binary_operation_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 4784 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4784 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 187:
-#line 1478 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1478 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 4792 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4792 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 188:
-#line 1483 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1483 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseBinaryExpression((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].binary_operation_), (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 4800 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4800 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 189:
-#line 1486 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1486 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 4808 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4808 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 190:
-#line 1491 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1491 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseUnaryExpression((yylsp[-1]).first_line, (yylsp[-1]).first_column, *(yyvsp[-1].unary_operation_), (yyvsp[0].expression_));
   }
-#line 4816 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4816 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 191:
-#line 1494 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1494 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 4824 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4824 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 192:
-#line 1499 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1499 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].attribute_);
   }
-#line 4832 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4832 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 1502 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1502 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseScalarLiteral((yyvsp[0].literal_value_));
   }
-#line 4840 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4840 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 194:
-#line 1505 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1505 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].function_call_);
   }
-#line 4848 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4848 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 195:
-#line 1508 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1508 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 4856 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4856 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 196:
-#line 1511 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1511 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 4864 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4864 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 197:
-#line 1514 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1514 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 4872 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4872 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 198:
-#line 1517 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1517 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[-1].expression_);
   }
-#line 4880 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4880 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 199:
-#line 1520 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1520 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].subquery_expression_);
   }
-#line 4888 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4888 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 200:
-#line 1525 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1525 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4897 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4897 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 201:
-#line 1529 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1529 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4906 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4906 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 202:
-#line 1533 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1533 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.function_call_) = new quickstep::ParseFunctionCall((yylsp[-3]).first_line, (yylsp[-3]).first_column, false, (yyvsp[-3].string_value_), (yyvsp[-1].expression_list_));
   }
-#line 4914 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4914 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 203:
-#line 1536 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1536 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.function_call_) = new quickstep::ParseFunctionCall((yylsp[-4]).first_line, (yylsp[-4]).first_column, true, (yyvsp[-4].string_value_), (yyvsp[-1].expression_list_));
   }
-#line 4922 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4922 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 204:
-#line 1541 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1541 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseExtractFunction((yylsp[-5]).first_line, (yylsp[-5]).first_column, (yyvsp[-3].string_value_), (yyvsp[-1].expression_));
   }
-#line 4930 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4930 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 205:
-#line 1546 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1546 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseSubstringFunction(
         (yylsp[-5]).first_line, (yylsp[-5]).first_column, (yyvsp[-3].expression_), (yyvsp[-1].numeric_literal_value_)->long_value());
   }
-#line 4939 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4939 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 206:
-#line 1550 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1550 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4948 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4948 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 207:
-#line 1556 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1556 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (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 4956 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4956 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 208:
-#line 1559 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1559 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = new quickstep::ParseSearchedCaseExpression((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-2].searched_when_clause_list_), (yyvsp[-1].expression_));
   }
-#line 4964 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4964 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 209:
-#line 1564 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1564 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.simple_when_clause_list_) = new quickstep::PtrVector<quickstep::ParseSimpleWhenClause>;
     (yyval.simple_when_clause_list_)->push_back((yyvsp[0].simple_when_clause_));
   }
-#line 4973 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4973 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 210:
-#line 1568 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1568 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.simple_when_clause_list_) = (yyvsp[-1].simple_when_clause_list_);
     (yyval.simple_when_clause_list_)->push_back((yyvsp[0].simple_when_clause_));
   }
-#line 4982 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4982 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 211:
-#line 1574 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1574 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.simple_when_clause_) = new quickstep::ParseSimpleWhenClause((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-2].expression_), (yyvsp[0].expression_));
   }
-#line 4990 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4990 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 212:
-#line 1579 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1579 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.searched_when_clause_list_) = new quickstep::PtrVector<quickstep::ParseSearchedWhenClause>;
     (yyval.searched_when_clause_list_)->push_back((yyvsp[0].searched_when_clause_));
   }
-#line 4999 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 4999 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 213:
-#line 1583 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1583 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.searched_when_clause_list_) = (yyvsp[-1].searched_when_clause_list_);
     (yyval.searched_when_clause_list_)->push_back((yyvsp[0].searched_when_clause_));
   }
-#line 5008 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5008 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 214:
-#line 1589 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1589 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.searched_when_clause_) = new quickstep::ParseSearchedWhenClause((yylsp[-3]).first_line, (yylsp[-3]).first_column, (yyvsp[-2].predicate_), (yyvsp[0].expression_));
   }
-#line 5016 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5016 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 215:
-#line 1594 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1594 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = NULL;
   }
-#line 5024 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5024 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 216:
-#line 1597 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1597 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_) = (yyvsp[0].expression_);
   }
-#line 5032 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5032 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 217:
-#line 1602 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1602 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_list_) = new quickstep::PtrList<quickstep::ParseExpression>();
     (yyval.expression_list_)->push_back((yyvsp[0].expression_));
   }
-#line 5041 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5041 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 218:
-#line 1606 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1606 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.expression_list_) = (yyvsp[-2].expression_list_);
     (yyval.expression_list_)->push_back((yyvsp[0].expression_));
   }
-#line 5050 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5050 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 219:
-#line 1612 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1612 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.literal_value_) = new quickstep::NullParseLiteralValue((yylsp[0]).first_line, (yylsp[0]).first_column);
   }
-#line 5058 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5058 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 220:
-#line 1615 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1615 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.literal_value_) = (yyvsp[0].numeric_literal_value_);
   }
-#line 5066 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5066 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 221:
-#line 1618 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1618 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.literal_value_) = (yyvsp[0].numeric_literal_value_);
   }
-#line 5074 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5074 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 222:
-#line 1621 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1621 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     /**
      * NOTE(chasseur): This case exhibits a shift/reduce conflict with the
@@ -5087,20 +5087,20 @@ yyreduce:
     (yyvsp[0].numeric_literal_value_)->prependMinus();
     (yyval.literal_value_) = (yyvsp[0].numeric_literal_value_);
   }
-#line 5091 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5091 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 223:
-#line 1633 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1633 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.literal_value_) = new quickstep::StringParseLiteralValue((yyvsp[0].string_value_),
                                                 nullptr);  // No explicit type.
   }
-#line 5100 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5100 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 224:
-#line 1637 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1637 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     /**
      * NOTE(chasseur): This case exhibits a shift/reduce conflict with the
@@ -5120,11 +5120,11 @@ yyreduce:
       YYERROR;
     }
   }
-#line 5124 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5124 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 225:
-#line 1656 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1656 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     quickstep::StringParseLiteralValue *parse_value;
     const std::string &datetime_type_value = (yyvsp[0].string_value_)->value();
@@ -5138,11 +5138,11 @@ yyreduce:
       YYERROR;
     }
   }
-#line 5142 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5142 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 226:
-#line 1669 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1669 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     quickstep::StringParseLiteralValue *parse_value
         = new quickstep::StringParseLiteralValue((yyvsp[0].string_value_), &((yyvsp[-1].data_type_)->getType()));
@@ -5156,191 +5156,191 @@ yyreduce:
       (yyval.literal_value_) = parse_value;
     }
   }
-#line 5160 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5160 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 227:
-#line 1684 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1684 "../SqlParser.ypp" /* yacc.c:1646  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("YEAR"));
   }
-#line 5168 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5168 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 228:
-#line 1687 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1687 "../SqlParser.ypp" /* yacc.c:1646  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("MONTH"));
   }
-#line 5176 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5176 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 229:
-#line 1690 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1690 "../SqlParser.ypp" /* yacc.c:1646  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("DAY"));
   }
-#line 5184 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5184 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 230:
-#line 1693 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1693 "../SqlParser.ypp" /* yacc.c:1646  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("HOUR"));
   }
-#line 5192 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5192 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 231:
-#line 1696 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1696 "../SqlParser.ypp" /* yacc.c:1646  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("MINUTE"));
   }
-#line 5200 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5200 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 232:
-#line 1699 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1699 "../SqlParser.ypp" /* yacc.c:1646  */
     {
      (yyval.string_value_) = new quickstep::ParseString((yylsp[0]).first_line, (yylsp[0]).first_column, std::string("SECOND"));
   }
-#line 5208 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5208 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 233:
-#line 1704 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1704 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.literal_value_list_) = new quickstep::PtrList<quickstep::ParseScalarLiteral>();
     (yyval.literal_value_list_)->push_back(new quickstep::ParseScalarLiteral((yyvsp[0].literal_value_)));
   }
-#line 5217 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5217 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 234:
-#line 1708 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1708 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.literal_value_list_) = (yyvsp[-2].literal_value_list_);
     (yyval.literal_value_list_)->push_back(new quickstep::ParseScalarLiteral((yyvsp[0].literal_value_)));
   }
-#line 5226 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5226 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 235:
-#line 1714 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1714 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_) = new quickstep::ParseAttribute((yylsp[0]).first_line, (yylsp[0]).first_column, (yyvsp[0].string_value_));
   }
-#line 5234 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5234 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 236:
-#line 1717 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1717 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_) = new quickstep::ParseAttribute((yylsp[-2]).first_line, (yylsp[-2]).first_column, (yyvsp[0].string_value_), (yyvsp[-2].string_value_));
   }
-#line 5242 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5242 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 237:
-#line 1722 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1722 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_list_) = new quickstep::PtrList<quickstep::ParseAttribute>();
     (yyval.attribute_list_)->push_back((yyvsp[0].attribute_));
   }
-#line 5251 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5251 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 238:
-#line 1726 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1726 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.attribute_list_) = (yyvsp[-2].attribute_list_);
     (yyval.attribute_list_)->push_back((yyvsp[0].attribute_));
   }
-#line 5260 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5260 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 239:
-#line 1733 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1733 "../SqlParser.ypp" /* yacc.c:1646  */
     {
     (yyval.comparison_) = &quickstep::ComparisonFactory::GetComparison(quickstep::ComparisonID::kEqual);
   }
-#line 5268 "SqlParser_gen.cpp" /* yacc.c:1661  */
+#line 5268 "SqlParser_gen.cpp" /* yacc.c:1646  */
     break;
 
   case 240:
-#line 1736 "../SqlParser.ypp" /* yacc.c:1661  */
+#line 1736 "../SqlPa

<TRUNCATED>