@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "columnNameCommentList"
	// HiveParser.g:1716:1: columnNameCommentList : columnNameComment ( COMMA columnNameComment )* -> ^( TOK_TABCOLNAME ( columnNameComment )+ ) ;
	public final HiveParser.columnNameCommentList_return columnNameCommentList() throws RecognitionException {
		HiveParser.columnNameCommentList_return retval = new HiveParser.columnNameCommentList_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token COMMA662=null;
		ParserRuleReturnScope columnNameComment661 =null;
		ParserRuleReturnScope columnNameComment663 =null;

		CommonTree COMMA662_tree=null;
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleSubtreeStream stream_columnNameComment=new RewriteRuleSubtreeStream(adaptor,"rule columnNameComment");

		 msgs.push("column name comment list"); 
		try {
			// HiveParser.g:1719:5: ( columnNameComment ( COMMA columnNameComment )* -> ^( TOK_TABCOLNAME ( columnNameComment )+ ) )
			// HiveParser.g:1719:7: columnNameComment ( COMMA columnNameComment )*
			{
			pushFollow(FOLLOW_columnNameComment_in_columnNameCommentList10347);
			columnNameComment661=columnNameComment();
			state._fsp--;

			stream_columnNameComment.add(columnNameComment661.getTree());
			// HiveParser.g:1719:25: ( COMMA columnNameComment )*
			loop179:
			while (true) {
				int alt179=2;
				int LA179_0 = input.LA(1);
				if ( (LA179_0==COMMA) ) {
					alt179=1;
				}

				switch (alt179) {
				case 1 :
					// HiveParser.g:1719:26: COMMA columnNameComment
					{
					COMMA662=(Token)match(input,COMMA,FOLLOW_COMMA_in_columnNameCommentList10350);  
					stream_COMMA.add(COMMA662);

					pushFollow(FOLLOW_columnNameComment_in_columnNameCommentList10352);
					columnNameComment663=columnNameComment();
					state._fsp--;

					stream_columnNameComment.add(columnNameComment663.getTree());
					}
					break;

				default :
					break loop179;
				}
			}

			// AST REWRITE
			// elements: columnNameComment
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1719:52: -> ^( TOK_TABCOLNAME ( columnNameComment )+ )
			{
				// HiveParser.g:1719:55: ^( TOK_TABCOLNAME ( columnNameComment )+ )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABCOLNAME, "TOK_TABCOLNAME"), root_1);
				if ( !(stream_columnNameComment.hasNext()) ) {
					throw new RewriteEarlyExitException();
				}
				while ( stream_columnNameComment.hasNext() ) {
					adaptor.addChild(root_1, stream_columnNameComment.nextTree());
				}
				stream_columnNameComment.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "columnNameCommentList"


	public static class columnNameComment_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "columnNameComment"
	// HiveParser.g:1722:1: columnNameComment : colName= identifier ( KW_COMMENT comment= StringLiteral )? -> ^( TOK_TABCOL $colName TOK_NULL ( $comment)? ) ;
	public final HiveParser.columnNameComment_return columnNameComment() throws RecognitionException {
		HiveParser.columnNameComment_return retval = new HiveParser.columnNameComment_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token comment=null;
		Token KW_COMMENT664=null;
		ParserRuleReturnScope colName =null;

		CommonTree comment_tree=null;
		CommonTree KW_COMMENT664_tree=null;
		RewriteRuleTokenStream stream_StringLiteral=new RewriteRuleTokenStream(adaptor,"token StringLiteral");
		RewriteRuleTokenStream stream_KW_COMMENT=new RewriteRuleTokenStream(adaptor,"token KW_COMMENT");
		RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");

		 msgs.push("column name comment"); 
		try {
			// HiveParser.g:1725:5: (colName= identifier ( KW_COMMENT comment= StringLiteral )? -> ^( TOK_TABCOL $colName TOK_NULL ( $comment)? ) )
			// HiveParser.g:1725:7: colName= identifier ( KW_COMMENT comment= StringLiteral )?
			{
			pushFollow(FOLLOW_identifier_in_columnNameComment10392);
			colName=identifier();
			state._fsp--;

			stream_identifier.add(colName.getTree());
			// HiveParser.g:1725:26: ( KW_COMMENT comment= StringLiteral )?
			int alt180=2;
			int LA180_0 = input.LA(1);
			if ( (LA180_0==KW_COMMENT) ) {
				alt180=1;
			}
			switch (alt180) {
				case 1 :
					// HiveParser.g:1725:27: KW_COMMENT comment= StringLiteral
					{
					KW_COMMENT664=(Token)match(input,KW_COMMENT,FOLLOW_KW_COMMENT_in_columnNameComment10395);  
					stream_KW_COMMENT.add(KW_COMMENT664);

					comment=(Token)match(input,StringLiteral,FOLLOW_StringLiteral_in_columnNameComment10399);  
					stream_StringLiteral.add(comment);

					}
					break;

			}

			// AST REWRITE
			// elements: comment, colName
			// token labels: comment
			// rule labels: retval, colName
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_comment=new RewriteRuleTokenStream(adaptor,"token comment",comment);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
			RewriteRuleSubtreeStream stream_colName=new RewriteRuleSubtreeStream(adaptor,"rule colName",colName!=null?colName.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1726:5: -> ^( TOK_TABCOL $colName TOK_NULL ( $comment)? )
			{
				// HiveParser.g:1726:8: ^( TOK_TABCOL $colName TOK_NULL ( $comment)? )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABCOL, "TOK_TABCOL"), root_1);
				adaptor.addChild(root_1, stream_colName.nextTree());
				adaptor.addChild(root_1, (CommonTree)adaptor.create(TOK_NULL, "TOK_NULL"));
				// HiveParser.g:1726:40: ( $comment)?
				if ( stream_comment.hasNext() ) {
					adaptor.addChild(root_1, stream_comment.nextNode());
				}
				stream_comment.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "columnNameComment"


	public static class columnRefOrder_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "columnRefOrder"
	// HiveParser.g:1729:1: columnRefOrder : expression (asc= KW_ASC |desc= KW_DESC )? -> {$desc == null}? ^( TOK_TABSORTCOLNAMEASC expression ) -> ^( TOK_TABSORTCOLNAMEDESC expression ) ;
	public final HiveParser.columnRefOrder_return columnRefOrder() throws RecognitionException {
		HiveParser.columnRefOrder_return retval = new HiveParser.columnRefOrder_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token asc=null;
		Token desc=null;
		ParserRuleReturnScope expression665 =null;

		CommonTree asc_tree=null;
		CommonTree desc_tree=null;
		RewriteRuleTokenStream stream_KW_DESC=new RewriteRuleTokenStream(adaptor,"token KW_DESC");
		RewriteRuleTokenStream stream_KW_ASC=new RewriteRuleTokenStream(adaptor,"token KW_ASC");
		RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");

		 msgs.push("column order"); 
		try {
			// HiveParser.g:1732:5: ( expression (asc= KW_ASC |desc= KW_DESC )? -> {$desc == null}? ^( TOK_TABSORTCOLNAMEASC expression ) -> ^( TOK_TABSORTCOLNAMEDESC expression ) )
			// HiveParser.g:1732:7: expression (asc= KW_ASC |desc= KW_DESC )?
			{
			pushFollow(FOLLOW_expression_in_columnRefOrder10447);
			expression665=expression();
			state._fsp--;

			stream_expression.add(expression665.getTree());
			// HiveParser.g:1732:18: (asc= KW_ASC |desc= KW_DESC )?
			int alt181=3;
			int LA181_0 = input.LA(1);
			if ( (LA181_0==KW_ASC) ) {
				alt181=1;
			}
			else if ( (LA181_0==KW_DESC) ) {
				alt181=2;
			}
			switch (alt181) {
				case 1 :
					// HiveParser.g:1732:19: asc= KW_ASC
					{
					asc=(Token)match(input,KW_ASC,FOLLOW_KW_ASC_in_columnRefOrder10452);  
					stream_KW_ASC.add(asc);

					}
					break;
				case 2 :
					// HiveParser.g:1732:32: desc= KW_DESC
					{
					desc=(Token)match(input,KW_DESC,FOLLOW_KW_DESC_in_columnRefOrder10458);  
					stream_KW_DESC.add(desc);

					}
					break;

			}

			// AST REWRITE
			// elements: expression, expression
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1733:5: -> {$desc == null}? ^( TOK_TABSORTCOLNAMEASC expression )
			if (desc == null) {
				// HiveParser.g:1733:25: ^( TOK_TABSORTCOLNAMEASC expression )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABSORTCOLNAMEASC, "TOK_TABSORTCOLNAMEASC"), root_1);
				adaptor.addChild(root_1, stream_expression.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 1734:5: -> ^( TOK_TABSORTCOLNAMEDESC expression )
			{
				// HiveParser.g:1734:25: ^( TOK_TABSORTCOLNAMEDESC expression )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABSORTCOLNAMEDESC, "TOK_TABSORTCOLNAMEDESC"), root_1);
				adaptor.addChild(root_1, stream_expression.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "columnRefOrder"


	public static class columnNameType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "columnNameType"
	// HiveParser.g:1737:1: columnNameType : colName= identifier colType ( KW_COMMENT comment= StringLiteral )? -> {$comment == null}? ^( TOK_TABCOL $colName colType ) -> ^( TOK_TABCOL $colName colType $comment) ;
	public final HiveParser.columnNameType_return columnNameType() throws RecognitionException {
		HiveParser.columnNameType_return retval = new HiveParser.columnNameType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token comment=null;
		Token KW_COMMENT667=null;
		ParserRuleReturnScope colName =null;
		ParserRuleReturnScope colType666 =null;

		CommonTree comment_tree=null;
		CommonTree KW_COMMENT667_tree=null;
		RewriteRuleTokenStream stream_StringLiteral=new RewriteRuleTokenStream(adaptor,"token StringLiteral");
		RewriteRuleTokenStream stream_KW_COMMENT=new RewriteRuleTokenStream(adaptor,"token KW_COMMENT");
		RewriteRuleSubtreeStream stream_colType=new RewriteRuleSubtreeStream(adaptor,"rule colType");
		RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");

		 msgs.push("column specification"); 
		try {
			// HiveParser.g:1740:5: (colName= identifier colType ( KW_COMMENT comment= StringLiteral )? -> {$comment == null}? ^( TOK_TABCOL $colName colType ) -> ^( TOK_TABCOL $colName colType $comment) )
			// HiveParser.g:1740:7: colName= identifier colType ( KW_COMMENT comment= StringLiteral )?
			{
			pushFollow(FOLLOW_identifier_in_columnNameType10532);
			colName=identifier();
			state._fsp--;

			stream_identifier.add(colName.getTree());
			pushFollow(FOLLOW_colType_in_columnNameType10534);
			colType666=colType();
			state._fsp--;

			stream_colType.add(colType666.getTree());
			// HiveParser.g:1740:34: ( KW_COMMENT comment= StringLiteral )?
			int alt182=2;
			int LA182_0 = input.LA(1);
			if ( (LA182_0==KW_COMMENT) ) {
				alt182=1;
			}
			switch (alt182) {
				case 1 :
					// HiveParser.g:1740:35: KW_COMMENT comment= StringLiteral
					{
					KW_COMMENT667=(Token)match(input,KW_COMMENT,FOLLOW_KW_COMMENT_in_columnNameType10537);  
					stream_KW_COMMENT.add(KW_COMMENT667);

					comment=(Token)match(input,StringLiteral,FOLLOW_StringLiteral_in_columnNameType10541);  
					stream_StringLiteral.add(comment);

					}
					break;

			}

			// AST REWRITE
			// elements: colType, comment, colName, colName, colType
			// token labels: comment
			// rule labels: retval, colName
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_comment=new RewriteRuleTokenStream(adaptor,"token comment",comment);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
			RewriteRuleSubtreeStream stream_colName=new RewriteRuleSubtreeStream(adaptor,"rule colName",colName!=null?colName.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1741:5: -> {$comment == null}? ^( TOK_TABCOL $colName colType )
			if (comment == null) {
				// HiveParser.g:1741:28: ^( TOK_TABCOL $colName colType )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABCOL, "TOK_TABCOL"), root_1);
				adaptor.addChild(root_1, stream_colName.nextTree());
				adaptor.addChild(root_1, stream_colType.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 1742:5: -> ^( TOK_TABCOL $colName colType $comment)
			{
				// HiveParser.g:1742:28: ^( TOK_TABCOL $colName colType $comment)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABCOL, "TOK_TABCOL"), root_1);
				adaptor.addChild(root_1, stream_colName.nextTree());
				adaptor.addChild(root_1, stream_colType.nextTree());
				adaptor.addChild(root_1, stream_comment.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "columnNameType"


	public static class columnNameColonType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "columnNameColonType"
	// HiveParser.g:1745:1: columnNameColonType : colName= identifier COLON colType ( KW_COMMENT comment= StringLiteral )? -> {$comment == null}? ^( TOK_TABCOL $colName colType ) -> ^( TOK_TABCOL $colName colType $comment) ;
	public final HiveParser.columnNameColonType_return columnNameColonType() throws RecognitionException {
		HiveParser.columnNameColonType_return retval = new HiveParser.columnNameColonType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token comment=null;
		Token COLON668=null;
		Token KW_COMMENT670=null;
		ParserRuleReturnScope colName =null;
		ParserRuleReturnScope colType669 =null;

		CommonTree comment_tree=null;
		CommonTree COLON668_tree=null;
		CommonTree KW_COMMENT670_tree=null;
		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
		RewriteRuleTokenStream stream_StringLiteral=new RewriteRuleTokenStream(adaptor,"token StringLiteral");
		RewriteRuleTokenStream stream_KW_COMMENT=new RewriteRuleTokenStream(adaptor,"token KW_COMMENT");
		RewriteRuleSubtreeStream stream_colType=new RewriteRuleSubtreeStream(adaptor,"rule colType");
		RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");

		 msgs.push("column specification"); 
		try {
			// HiveParser.g:1748:5: (colName= identifier COLON colType ( KW_COMMENT comment= StringLiteral )? -> {$comment == null}? ^( TOK_TABCOL $colName colType ) -> ^( TOK_TABCOL $colName colType $comment) )
			// HiveParser.g:1748:7: colName= identifier COLON colType ( KW_COMMENT comment= StringLiteral )?
			{
			pushFollow(FOLLOW_identifier_in_columnNameColonType10627);
			colName=identifier();
			state._fsp--;

			stream_identifier.add(colName.getTree());
			COLON668=(Token)match(input,COLON,FOLLOW_COLON_in_columnNameColonType10629);  
			stream_COLON.add(COLON668);

			pushFollow(FOLLOW_colType_in_columnNameColonType10631);
			colType669=colType();
			state._fsp--;

			stream_colType.add(colType669.getTree());
			// HiveParser.g:1748:40: ( KW_COMMENT comment= StringLiteral )?
			int alt183=2;
			int LA183_0 = input.LA(1);
			if ( (LA183_0==KW_COMMENT) ) {
				alt183=1;
			}
			switch (alt183) {
				case 1 :
					// HiveParser.g:1748:41: KW_COMMENT comment= StringLiteral
					{
					KW_COMMENT670=(Token)match(input,KW_COMMENT,FOLLOW_KW_COMMENT_in_columnNameColonType10634);  
					stream_KW_COMMENT.add(KW_COMMENT670);

					comment=(Token)match(input,StringLiteral,FOLLOW_StringLiteral_in_columnNameColonType10638);  
					stream_StringLiteral.add(comment);

					}
					break;

			}

			// AST REWRITE
			// elements: comment, colType, colType, colName, colName
			// token labels: comment
			// rule labels: retval, colName
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_comment=new RewriteRuleTokenStream(adaptor,"token comment",comment);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
			RewriteRuleSubtreeStream stream_colName=new RewriteRuleSubtreeStream(adaptor,"rule colName",colName!=null?colName.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1749:5: -> {$comment == null}? ^( TOK_TABCOL $colName colType )
			if (comment == null) {
				// HiveParser.g:1749:28: ^( TOK_TABCOL $colName colType )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABCOL, "TOK_TABCOL"), root_1);
				adaptor.addChild(root_1, stream_colName.nextTree());
				adaptor.addChild(root_1, stream_colType.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 1750:5: -> ^( TOK_TABCOL $colName colType $comment)
			{
				// HiveParser.g:1750:28: ^( TOK_TABCOL $colName colType $comment)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_TABCOL, "TOK_TABCOL"), root_1);
				adaptor.addChild(root_1, stream_colName.nextTree());
				adaptor.addChild(root_1, stream_colType.nextTree());
				adaptor.addChild(root_1, stream_comment.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "columnNameColonType"


	public static class colType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "colType"
	// HiveParser.g:1753:1: colType : type ;
	public final HiveParser.colType_return colType() throws RecognitionException {
		HiveParser.colType_return retval = new HiveParser.colType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope type671 =null;


		 msgs.push("column type"); 
		try {
			// HiveParser.g:1756:5: ( type )
			// HiveParser.g:1756:7: type
			{
			root_0 = (CommonTree)adaptor.nil();


			pushFollow(FOLLOW_type_in_colType10722);
			type671=type();
			state._fsp--;

			adaptor.addChild(root_0, type671.getTree());

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "colType"


	public static class colTypeList_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "colTypeList"
	// HiveParser.g:1759:1: colTypeList : colType ( COMMA colType )* -> ^( TOK_COLTYPELIST ( colType )+ ) ;
	public final HiveParser.colTypeList_return colTypeList() throws RecognitionException {
		HiveParser.colTypeList_return retval = new HiveParser.colTypeList_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token COMMA673=null;
		ParserRuleReturnScope colType672 =null;
		ParserRuleReturnScope colType674 =null;

		CommonTree COMMA673_tree=null;
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleSubtreeStream stream_colType=new RewriteRuleSubtreeStream(adaptor,"rule colType");

		 msgs.push("column type list"); 
		try {
			// HiveParser.g:1762:5: ( colType ( COMMA colType )* -> ^( TOK_COLTYPELIST ( colType )+ ) )
			// HiveParser.g:1762:7: colType ( COMMA colType )*
			{
			pushFollow(FOLLOW_colType_in_colTypeList10749);
			colType672=colType();
			state._fsp--;

			stream_colType.add(colType672.getTree());
			// HiveParser.g:1762:15: ( COMMA colType )*
			loop184:
			while (true) {
				int alt184=2;
				int LA184_0 = input.LA(1);
				if ( (LA184_0==COMMA) ) {
					alt184=1;
				}

				switch (alt184) {
				case 1 :
					// HiveParser.g:1762:16: COMMA colType
					{
					COMMA673=(Token)match(input,COMMA,FOLLOW_COMMA_in_colTypeList10752);  
					stream_COMMA.add(COMMA673);

					pushFollow(FOLLOW_colType_in_colTypeList10754);
					colType674=colType();
					state._fsp--;

					stream_colType.add(colType674.getTree());
					}
					break;

				default :
					break loop184;
				}
			}

			// AST REWRITE
			// elements: colType
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1762:32: -> ^( TOK_COLTYPELIST ( colType )+ )
			{
				// HiveParser.g:1762:35: ^( TOK_COLTYPELIST ( colType )+ )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_COLTYPELIST, "TOK_COLTYPELIST"), root_1);
				if ( !(stream_colType.hasNext()) ) {
					throw new RewriteEarlyExitException();
				}
				while ( stream_colType.hasNext() ) {
					adaptor.addChild(root_1, stream_colType.nextTree());
				}
				stream_colType.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "colTypeList"


	public static class type_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "type"
	// HiveParser.g:1765:1: type : ( primitiveType | listType | structType | mapType | unionType );
	public final HiveParser.type_return type() throws RecognitionException {
		HiveParser.type_return retval = new HiveParser.type_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope primitiveType675 =null;
		ParserRuleReturnScope listType676 =null;
		ParserRuleReturnScope structType677 =null;
		ParserRuleReturnScope mapType678 =null;
		ParserRuleReturnScope unionType679 =null;


		try {
			// HiveParser.g:1766:5: ( primitiveType | listType | structType | mapType | unionType )
			int alt185=5;
			switch ( input.LA(1) ) {
			case KW_BIGINT:
			case KW_BINARY:
			case KW_BOOLEAN:
			case KW_DATE:
			case KW_DATETIME:
			case KW_DECIMAL:
			case KW_DOUBLE:
			case KW_FLOAT:
			case KW_INT:
			case KW_SMALLINT:
			case KW_STRING:
			case KW_TIMESTAMP:
			case KW_TINYINT:
			case KW_VARCHAR:
				{
				alt185=1;
				}
				break;
			case KW_ARRAY:
				{
				alt185=2;
				}
				break;
			case KW_STRUCT:
				{
				alt185=3;
				}
				break;
			case KW_MAP:
				{
				alt185=4;
				}
				break;
			case KW_UNIONTYPE:
				{
				alt185=5;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 185, 0, input);
				throw nvae;
			}
			switch (alt185) {
				case 1 :
					// HiveParser.g:1766:7: primitiveType
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_primitiveType_in_type10782);
					primitiveType675=primitiveType();
					state._fsp--;

					adaptor.addChild(root_0, primitiveType675.getTree());

					}
					break;
				case 2 :
					// HiveParser.g:1767:7: listType
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_listType_in_type10790);
					listType676=listType();
					state._fsp--;

					adaptor.addChild(root_0, listType676.getTree());

					}
					break;
				case 3 :
					// HiveParser.g:1768:7: structType
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_structType_in_type10798);
					structType677=structType();
					state._fsp--;

					adaptor.addChild(root_0, structType677.getTree());

					}
					break;
				case 4 :
					// HiveParser.g:1769:7: mapType
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_mapType_in_type10806);
					mapType678=mapType();
					state._fsp--;

					adaptor.addChild(root_0, mapType678.getTree());

					}
					break;
				case 5 :
					// HiveParser.g:1770:7: unionType
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_unionType_in_type10814);
					unionType679=unionType();
					state._fsp--;

					adaptor.addChild(root_0, unionType679.getTree());

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "type"


	public static class primitiveType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "primitiveType"
	// HiveParser.g:1772:1: primitiveType : ( KW_TINYINT -> TOK_TINYINT | KW_SMALLINT -> TOK_SMALLINT | KW_INT -> TOK_INT | KW_BIGINT -> TOK_BIGINT | KW_BOOLEAN -> TOK_BOOLEAN | KW_FLOAT -> TOK_FLOAT | KW_DOUBLE -> TOK_DOUBLE | KW_DATE -> TOK_DATE | KW_DATETIME -> TOK_DATETIME | KW_TIMESTAMP -> TOK_TIMESTAMP | KW_STRING -> TOK_STRING | KW_BINARY -> TOK_BINARY | KW_DECIMAL -> TOK_DECIMAL | KW_VARCHAR LPAREN length= Number RPAREN -> ^( TOK_VARCHAR $length) );
	public final HiveParser.primitiveType_return primitiveType() throws RecognitionException {
		HiveParser.primitiveType_return retval = new HiveParser.primitiveType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token length=null;
		Token KW_TINYINT680=null;
		Token KW_SMALLINT681=null;
		Token KW_INT682=null;
		Token KW_BIGINT683=null;
		Token KW_BOOLEAN684=null;
		Token KW_FLOAT685=null;
		Token KW_DOUBLE686=null;
		Token KW_DATE687=null;
		Token KW_DATETIME688=null;
		Token KW_TIMESTAMP689=null;
		Token KW_STRING690=null;
		Token KW_BINARY691=null;
		Token KW_DECIMAL692=null;
		Token KW_VARCHAR693=null;
		Token LPAREN694=null;
		Token RPAREN695=null;

		CommonTree length_tree=null;
		CommonTree KW_TINYINT680_tree=null;
		CommonTree KW_SMALLINT681_tree=null;
		CommonTree KW_INT682_tree=null;
		CommonTree KW_BIGINT683_tree=null;
		CommonTree KW_BOOLEAN684_tree=null;
		CommonTree KW_FLOAT685_tree=null;
		CommonTree KW_DOUBLE686_tree=null;
		CommonTree KW_DATE687_tree=null;
		CommonTree KW_DATETIME688_tree=null;
		CommonTree KW_TIMESTAMP689_tree=null;
		CommonTree KW_STRING690_tree=null;
		CommonTree KW_BINARY691_tree=null;
		CommonTree KW_DECIMAL692_tree=null;
		CommonTree KW_VARCHAR693_tree=null;
		CommonTree LPAREN694_tree=null;
		CommonTree RPAREN695_tree=null;
		RewriteRuleTokenStream stream_KW_DATETIME=new RewriteRuleTokenStream(adaptor,"token KW_DATETIME");
		RewriteRuleTokenStream stream_KW_VARCHAR=new RewriteRuleTokenStream(adaptor,"token KW_VARCHAR");
		RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
		RewriteRuleTokenStream stream_KW_DATE=new RewriteRuleTokenStream(adaptor,"token KW_DATE");
		RewriteRuleTokenStream stream_KW_TIMESTAMP=new RewriteRuleTokenStream(adaptor,"token KW_TIMESTAMP");
		RewriteRuleTokenStream stream_KW_STRING=new RewriteRuleTokenStream(adaptor,"token KW_STRING");
		RewriteRuleTokenStream stream_Number=new RewriteRuleTokenStream(adaptor,"token Number");
		RewriteRuleTokenStream stream_KW_SMALLINT=new RewriteRuleTokenStream(adaptor,"token KW_SMALLINT");
		RewriteRuleTokenStream stream_KW_INT=new RewriteRuleTokenStream(adaptor,"token KW_INT");
		RewriteRuleTokenStream stream_KW_BINARY=new RewriteRuleTokenStream(adaptor,"token KW_BINARY");
		RewriteRuleTokenStream stream_KW_DECIMAL=new RewriteRuleTokenStream(adaptor,"token KW_DECIMAL");
		RewriteRuleTokenStream stream_KW_BOOLEAN=new RewriteRuleTokenStream(adaptor,"token KW_BOOLEAN");
		RewriteRuleTokenStream stream_KW_FLOAT=new RewriteRuleTokenStream(adaptor,"token KW_FLOAT");
		RewriteRuleTokenStream stream_KW_DOUBLE=new RewriteRuleTokenStream(adaptor,"token KW_DOUBLE");
		RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
		RewriteRuleTokenStream stream_KW_BIGINT=new RewriteRuleTokenStream(adaptor,"token KW_BIGINT");
		RewriteRuleTokenStream stream_KW_TINYINT=new RewriteRuleTokenStream(adaptor,"token KW_TINYINT");

		 msgs.push("primitive type specification"); 
		try {
			// HiveParser.g:1775:5: ( KW_TINYINT -> TOK_TINYINT | KW_SMALLINT -> TOK_SMALLINT | KW_INT -> TOK_INT | KW_BIGINT -> TOK_BIGINT | KW_BOOLEAN -> TOK_BOOLEAN | KW_FLOAT -> TOK_FLOAT | KW_DOUBLE -> TOK_DOUBLE | KW_DATE -> TOK_DATE | KW_DATETIME -> TOK_DATETIME | KW_TIMESTAMP -> TOK_TIMESTAMP | KW_STRING -> TOK_STRING | KW_BINARY -> TOK_BINARY | KW_DECIMAL -> TOK_DECIMAL | KW_VARCHAR LPAREN length= Number RPAREN -> ^( TOK_VARCHAR $length) )
			int alt186=14;
			switch ( input.LA(1) ) {
			case KW_TINYINT:
				{
				alt186=1;
				}
				break;
			case KW_SMALLINT:
				{
				alt186=2;
				}
				break;
			case KW_INT:
				{
				alt186=3;
				}
				break;
			case KW_BIGINT:
				{
				alt186=4;
				}
				break;
			case KW_BOOLEAN:
				{
				alt186=5;
				}
				break;
			case KW_FLOAT:
				{
				alt186=6;
				}
				break;
			case KW_DOUBLE:
				{
				alt186=7;
				}
				break;
			case KW_DATE:
				{
				alt186=8;
				}
				break;
			case KW_DATETIME:
				{
				alt186=9;
				}
				break;
			case KW_TIMESTAMP:
				{
				alt186=10;
				}
				break;
			case KW_STRING:
				{
				alt186=11;
				}
				break;
			case KW_BINARY:
				{
				alt186=12;
				}
				break;
			case KW_DECIMAL:
				{
				alt186=13;
				}
				break;
			case KW_VARCHAR:
				{
				alt186=14;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 186, 0, input);
				throw nvae;
			}
			switch (alt186) {
				case 1 :
					// HiveParser.g:1775:7: KW_TINYINT
					{
					KW_TINYINT680=(Token)match(input,KW_TINYINT,FOLLOW_KW_TINYINT_in_primitiveType10836);  
					stream_KW_TINYINT.add(KW_TINYINT680);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1775:24: -> TOK_TINYINT
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_TINYINT, "TOK_TINYINT"));
					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// HiveParser.g:1776:7: KW_SMALLINT
					{
					KW_SMALLINT681=(Token)match(input,KW_SMALLINT,FOLLOW_KW_SMALLINT_in_primitiveType10857);  
					stream_KW_SMALLINT.add(KW_SMALLINT681);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1776:24: -> TOK_SMALLINT
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_SMALLINT, "TOK_SMALLINT"));
					}


					retval.tree = root_0;

					}
					break;
				case 3 :
					// HiveParser.g:1777:7: KW_INT
					{
					KW_INT682=(Token)match(input,KW_INT,FOLLOW_KW_INT_in_primitiveType10877);  
					stream_KW_INT.add(KW_INT682);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1777:24: -> TOK_INT
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_INT, "TOK_INT"));
					}


					retval.tree = root_0;

					}
					break;
				case 4 :
					// HiveParser.g:1778:7: KW_BIGINT
					{
					KW_BIGINT683=(Token)match(input,KW_BIGINT,FOLLOW_KW_BIGINT_in_primitiveType10902);  
					stream_KW_BIGINT.add(KW_BIGINT683);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1778:24: -> TOK_BIGINT
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_BIGINT, "TOK_BIGINT"));
					}


					retval.tree = root_0;

					}
					break;
				case 5 :
					// HiveParser.g:1779:7: KW_BOOLEAN
					{
					KW_BOOLEAN684=(Token)match(input,KW_BOOLEAN,FOLLOW_KW_BOOLEAN_in_primitiveType10924);  
					stream_KW_BOOLEAN.add(KW_BOOLEAN684);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1779:24: -> TOK_BOOLEAN
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_BOOLEAN, "TOK_BOOLEAN"));
					}


					retval.tree = root_0;

					}
					break;
				case 6 :
					// HiveParser.g:1780:7: KW_FLOAT
					{
					KW_FLOAT685=(Token)match(input,KW_FLOAT,FOLLOW_KW_FLOAT_in_primitiveType10945);  
					stream_KW_FLOAT.add(KW_FLOAT685);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1780:24: -> TOK_FLOAT
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_FLOAT, "TOK_FLOAT"));
					}


					retval.tree = root_0;

					}
					break;
				case 7 :
					// HiveParser.g:1781:7: KW_DOUBLE
					{
					KW_DOUBLE686=(Token)match(input,KW_DOUBLE,FOLLOW_KW_DOUBLE_in_primitiveType10968);  
					stream_KW_DOUBLE.add(KW_DOUBLE686);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1781:24: -> TOK_DOUBLE
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_DOUBLE, "TOK_DOUBLE"));
					}


					retval.tree = root_0;

					}
					break;
				case 8 :
					// HiveParser.g:1782:7: KW_DATE
					{
					KW_DATE687=(Token)match(input,KW_DATE,FOLLOW_KW_DATE_in_primitiveType10990);  
					stream_KW_DATE.add(KW_DATE687);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1782:24: -> TOK_DATE
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_DATE, "TOK_DATE"));
					}


					retval.tree = root_0;

					}
					break;
				case 9 :
					// HiveParser.g:1783:7: KW_DATETIME
					{
					KW_DATETIME688=(Token)match(input,KW_DATETIME,FOLLOW_KW_DATETIME_in_primitiveType11014);  
					stream_KW_DATETIME.add(KW_DATETIME688);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1783:24: -> TOK_DATETIME
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_DATETIME, "TOK_DATETIME"));
					}


					retval.tree = root_0;

					}
					break;
				case 10 :
					// HiveParser.g:1784:7: KW_TIMESTAMP
					{
					KW_TIMESTAMP689=(Token)match(input,KW_TIMESTAMP,FOLLOW_KW_TIMESTAMP_in_primitiveType11034);  
					stream_KW_TIMESTAMP.add(KW_TIMESTAMP689);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1784:24: -> TOK_TIMESTAMP
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_TIMESTAMP, "TOK_TIMESTAMP"));
					}


					retval.tree = root_0;

					}
					break;
				case 11 :
					// HiveParser.g:1785:7: KW_STRING
					{
					KW_STRING690=(Token)match(input,KW_STRING,FOLLOW_KW_STRING_in_primitiveType11053);  
					stream_KW_STRING.add(KW_STRING690);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1785:24: -> TOK_STRING
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_STRING, "TOK_STRING"));
					}


					retval.tree = root_0;

					}
					break;
				case 12 :
					// HiveParser.g:1786:7: KW_BINARY
					{
					KW_BINARY691=(Token)match(input,KW_BINARY,FOLLOW_KW_BINARY_in_primitiveType11075);  
					stream_KW_BINARY.add(KW_BINARY691);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1786:24: -> TOK_BINARY
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_BINARY, "TOK_BINARY"));
					}


					retval.tree = root_0;

					}
					break;
				case 13 :
					// HiveParser.g:1787:7: KW_DECIMAL
					{
					KW_DECIMAL692=(Token)match(input,KW_DECIMAL,FOLLOW_KW_DECIMAL_in_primitiveType11097);  
					stream_KW_DECIMAL.add(KW_DECIMAL692);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1787:24: -> TOK_DECIMAL
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(TOK_DECIMAL, "TOK_DECIMAL"));
					}


					retval.tree = root_0;

					}
					break;
				case 14 :
					// HiveParser.g:1788:7: KW_VARCHAR LPAREN length= Number RPAREN
					{
					KW_VARCHAR693=(Token)match(input,KW_VARCHAR,FOLLOW_KW_VARCHAR_in_primitiveType11118);  
					stream_KW_VARCHAR.add(KW_VARCHAR693);

					LPAREN694=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primitiveType11120);  
					stream_LPAREN.add(LPAREN694);

					length=(Token)match(input,Number,FOLLOW_Number_in_primitiveType11124);  
					stream_Number.add(length);

					RPAREN695=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primitiveType11126);  
					stream_RPAREN.add(RPAREN695);

					// AST REWRITE
					// elements: length
					// token labels: length
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleTokenStream stream_length=new RewriteRuleTokenStream(adaptor,"token length",length);
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1788:51: -> ^( TOK_VARCHAR $length)
					{
						// HiveParser.g:1788:57: ^( TOK_VARCHAR $length)
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_VARCHAR, "TOK_VARCHAR"), root_1);
						adaptor.addChild(root_1, stream_length.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "primitiveType"


	public static class listType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "listType"
	// HiveParser.g:1791:1: listType : KW_ARRAY LESSTHAN type GREATERTHAN -> ^( TOK_LIST type ) ;
	public final HiveParser.listType_return listType() throws RecognitionException {
		HiveParser.listType_return retval = new HiveParser.listType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_ARRAY696=null;
		Token LESSTHAN697=null;
		Token GREATERTHAN699=null;
		ParserRuleReturnScope type698 =null;

		CommonTree KW_ARRAY696_tree=null;
		CommonTree LESSTHAN697_tree=null;
		CommonTree GREATERTHAN699_tree=null;
		RewriteRuleTokenStream stream_LESSTHAN=new RewriteRuleTokenStream(adaptor,"token LESSTHAN");
		RewriteRuleTokenStream stream_KW_ARRAY=new RewriteRuleTokenStream(adaptor,"token KW_ARRAY");
		RewriteRuleTokenStream stream_GREATERTHAN=new RewriteRuleTokenStream(adaptor,"token GREATERTHAN");
		RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");

		 msgs.push("list type"); 
		try {
			// HiveParser.g:1794:5: ( KW_ARRAY LESSTHAN type GREATERTHAN -> ^( TOK_LIST type ) )
			// HiveParser.g:1794:7: KW_ARRAY LESSTHAN type GREATERTHAN
			{
			KW_ARRAY696=(Token)match(input,KW_ARRAY,FOLLOW_KW_ARRAY_in_listType11170);  
			stream_KW_ARRAY.add(KW_ARRAY696);

			LESSTHAN697=(Token)match(input,LESSTHAN,FOLLOW_LESSTHAN_in_listType11172);  
			stream_LESSTHAN.add(LESSTHAN697);

			pushFollow(FOLLOW_type_in_listType11174);
			type698=type();
			state._fsp--;

			stream_type.add(type698.getTree());
			GREATERTHAN699=(Token)match(input,GREATERTHAN,FOLLOW_GREATERTHAN_in_listType11176);  
			stream_GREATERTHAN.add(GREATERTHAN699);

			// AST REWRITE
			// elements: type
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1794:44: -> ^( TOK_LIST type )
			{
				// HiveParser.g:1794:47: ^( TOK_LIST type )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_LIST, "TOK_LIST"), root_1);
				adaptor.addChild(root_1, stream_type.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "listType"


	public static class structType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "structType"
	// HiveParser.g:1797:1: structType : KW_STRUCT LESSTHAN columnNameColonTypeList GREATERTHAN -> ^( TOK_STRUCT columnNameColonTypeList ) ;
	public final HiveParser.structType_return structType() throws RecognitionException {
		HiveParser.structType_return retval = new HiveParser.structType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_STRUCT700=null;
		Token LESSTHAN701=null;
		Token GREATERTHAN703=null;
		ParserRuleReturnScope columnNameColonTypeList702 =null;

		CommonTree KW_STRUCT700_tree=null;
		CommonTree LESSTHAN701_tree=null;
		CommonTree GREATERTHAN703_tree=null;
		RewriteRuleTokenStream stream_LESSTHAN=new RewriteRuleTokenStream(adaptor,"token LESSTHAN");
		RewriteRuleTokenStream stream_KW_STRUCT=new RewriteRuleTokenStream(adaptor,"token KW_STRUCT");
		RewriteRuleTokenStream stream_GREATERTHAN=new RewriteRuleTokenStream(adaptor,"token GREATERTHAN");
		RewriteRuleSubtreeStream stream_columnNameColonTypeList=new RewriteRuleSubtreeStream(adaptor,"rule columnNameColonTypeList");

		 msgs.push("struct type"); 
		try {
			// HiveParser.g:1800:5: ( KW_STRUCT LESSTHAN columnNameColonTypeList GREATERTHAN -> ^( TOK_STRUCT columnNameColonTypeList ) )
			// HiveParser.g:1800:7: KW_STRUCT LESSTHAN columnNameColonTypeList GREATERTHAN
			{
			KW_STRUCT700=(Token)match(input,KW_STRUCT,FOLLOW_KW_STRUCT_in_structType11213);  
			stream_KW_STRUCT.add(KW_STRUCT700);

			LESSTHAN701=(Token)match(input,LESSTHAN,FOLLOW_LESSTHAN_in_structType11215);  
			stream_LESSTHAN.add(LESSTHAN701);

			pushFollow(FOLLOW_columnNameColonTypeList_in_structType11217);
			columnNameColonTypeList702=columnNameColonTypeList();
			state._fsp--;

			stream_columnNameColonTypeList.add(columnNameColonTypeList702.getTree());
			GREATERTHAN703=(Token)match(input,GREATERTHAN,FOLLOW_GREATERTHAN_in_structType11219);  
			stream_GREATERTHAN.add(GREATERTHAN703);

			// AST REWRITE
			// elements: columnNameColonTypeList
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1800:62: -> ^( TOK_STRUCT columnNameColonTypeList )
			{
				// HiveParser.g:1800:65: ^( TOK_STRUCT columnNameColonTypeList )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_STRUCT, "TOK_STRUCT"), root_1);
				adaptor.addChild(root_1, stream_columnNameColonTypeList.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "structType"


	public static class mapType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "mapType"
	// HiveParser.g:1803:1: mapType : KW_MAP LESSTHAN left= primitiveType COMMA right= type GREATERTHAN -> ^( TOK_MAP $left $right) ;
	public final HiveParser.mapType_return mapType() throws RecognitionException {
		HiveParser.mapType_return retval = new HiveParser.mapType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_MAP704=null;
		Token LESSTHAN705=null;
		Token COMMA706=null;
		Token GREATERTHAN707=null;
		ParserRuleReturnScope left =null;
		ParserRuleReturnScope right =null;

		CommonTree KW_MAP704_tree=null;
		CommonTree LESSTHAN705_tree=null;
		CommonTree COMMA706_tree=null;
		CommonTree GREATERTHAN707_tree=null;
		RewriteRuleTokenStream stream_LESSTHAN=new RewriteRuleTokenStream(adaptor,"token LESSTHAN");
		RewriteRuleTokenStream stream_KW_MAP=new RewriteRuleTokenStream(adaptor,"token KW_MAP");
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleTokenStream stream_GREATERTHAN=new RewriteRuleTokenStream(adaptor,"token GREATERTHAN");
		RewriteRuleSubtreeStream stream_primitiveType=new RewriteRuleSubtreeStream(adaptor,"rule primitiveType");
		RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");

		 msgs.push("map type"); 
		try {
			// HiveParser.g:1806:5: ( KW_MAP LESSTHAN left= primitiveType COMMA right= type GREATERTHAN -> ^( TOK_MAP $left $right) )
			// HiveParser.g:1806:7: KW_MAP LESSTHAN left= primitiveType COMMA right= type GREATERTHAN
			{
			KW_MAP704=(Token)match(input,KW_MAP,FOLLOW_KW_MAP_in_mapType11254);  
			stream_KW_MAP.add(KW_MAP704);

			LESSTHAN705=(Token)match(input,LESSTHAN,FOLLOW_LESSTHAN_in_mapType11256);  
			stream_LESSTHAN.add(LESSTHAN705);

			pushFollow(FOLLOW_primitiveType_in_mapType11260);
			left=primitiveType();
			state._fsp--;

			stream_primitiveType.add(left.getTree());
			COMMA706=(Token)match(input,COMMA,FOLLOW_COMMA_in_mapType11262);  
			stream_COMMA.add(COMMA706);

			pushFollow(FOLLOW_type_in_mapType11266);
			right=type();
			state._fsp--;

			stream_type.add(right.getTree());
			GREATERTHAN707=(Token)match(input,GREATERTHAN,FOLLOW_GREATERTHAN_in_mapType11268);  
			stream_GREATERTHAN.add(GREATERTHAN707);

			// AST REWRITE
			// elements: left, right
			// token labels: 
			// rule labels: retval, left, right
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
			RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.getTree():null);
			RewriteRuleSubtreeStream stream_right=new RewriteRuleSubtreeStream(adaptor,"rule right",right!=null?right.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1807:5: -> ^( TOK_MAP $left $right)
			{
				// HiveParser.g:1807:8: ^( TOK_MAP $left $right)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_MAP, "TOK_MAP"), root_1);
				adaptor.addChild(root_1, stream_left.nextTree());
				adaptor.addChild(root_1, stream_right.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "mapType"


	public static class unionType_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "unionType"
	// HiveParser.g:1810:1: unionType : KW_UNIONTYPE LESSTHAN colTypeList GREATERTHAN -> ^( TOK_UNIONTYPE colTypeList ) ;
	public final HiveParser.unionType_return unionType() throws RecognitionException {
		HiveParser.unionType_return retval = new HiveParser.unionType_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_UNIONTYPE708=null;
		Token LESSTHAN709=null;
		Token GREATERTHAN711=null;
		ParserRuleReturnScope colTypeList710 =null;

		CommonTree KW_UNIONTYPE708_tree=null;
		CommonTree LESSTHAN709_tree=null;
		CommonTree GREATERTHAN711_tree=null;
		RewriteRuleTokenStream stream_LESSTHAN=new RewriteRuleTokenStream(adaptor,"token LESSTHAN");
		RewriteRuleTokenStream stream_KW_UNIONTYPE=new RewriteRuleTokenStream(adaptor,"token KW_UNIONTYPE");
		RewriteRuleTokenStream stream_GREATERTHAN=new RewriteRuleTokenStream(adaptor,"token GREATERTHAN");
		RewriteRuleSubtreeStream stream_colTypeList=new RewriteRuleSubtreeStream(adaptor,"rule colTypeList");

		 msgs.push("uniontype type"); 
		try {
			// HiveParser.g:1813:5: ( KW_UNIONTYPE LESSTHAN colTypeList GREATERTHAN -> ^( TOK_UNIONTYPE colTypeList ) )
			// HiveParser.g:1813:7: KW_UNIONTYPE LESSTHAN colTypeList GREATERTHAN
			{
			KW_UNIONTYPE708=(Token)match(input,KW_UNIONTYPE,FOLLOW_KW_UNIONTYPE_in_unionType11311);  
			stream_KW_UNIONTYPE.add(KW_UNIONTYPE708);

			LESSTHAN709=(Token)match(input,LESSTHAN,FOLLOW_LESSTHAN_in_unionType11313);  
			stream_LESSTHAN.add(LESSTHAN709);

			pushFollow(FOLLOW_colTypeList_in_unionType11315);
			colTypeList710=colTypeList();
			state._fsp--;

			stream_colTypeList.add(colTypeList710.getTree());
			GREATERTHAN711=(Token)match(input,GREATERTHAN,FOLLOW_GREATERTHAN_in_unionType11317);  
			stream_GREATERTHAN.add(GREATERTHAN711);

			// AST REWRITE
			// elements: colTypeList
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1813:53: -> ^( TOK_UNIONTYPE colTypeList )
			{
				// HiveParser.g:1813:56: ^( TOK_UNIONTYPE colTypeList )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_UNIONTYPE, "TOK_UNIONTYPE"), root_1);
				adaptor.addChild(root_1, stream_colTypeList.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "unionType"


	public static class queryOperator_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "queryOperator"
	// HiveParser.g:1816:1: queryOperator : KW_UNION KW_ALL -> ^( TOK_UNION ) ;
	public final HiveParser.queryOperator_return queryOperator() throws RecognitionException {
		HiveParser.queryOperator_return retval = new HiveParser.queryOperator_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_UNION712=null;
		Token KW_ALL713=null;

		CommonTree KW_UNION712_tree=null;
		CommonTree KW_ALL713_tree=null;
		RewriteRuleTokenStream stream_KW_ALL=new RewriteRuleTokenStream(adaptor,"token KW_ALL");
		RewriteRuleTokenStream stream_KW_UNION=new RewriteRuleTokenStream(adaptor,"token KW_UNION");

		 msgs.push("query operator"); 
		try {
			// HiveParser.g:1819:5: ( KW_UNION KW_ALL -> ^( TOK_UNION ) )
			// HiveParser.g:1819:7: KW_UNION KW_ALL
			{
			KW_UNION712=(Token)match(input,KW_UNION,FOLLOW_KW_UNION_in_queryOperator11352);  
			stream_KW_UNION.add(KW_UNION712);

			KW_ALL713=(Token)match(input,KW_ALL,FOLLOW_KW_ALL_in_queryOperator11354);  
			stream_KW_ALL.add(KW_ALL713);

			// AST REWRITE
			// elements: 
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1819:23: -> ^( TOK_UNION )
			{
				// HiveParser.g:1819:26: ^( TOK_UNION )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_UNION, "TOK_UNION"), root_1);
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "queryOperator"


	public static class queryStatementExpression_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "queryStatementExpression"
	// HiveParser.g:1823:1: queryStatementExpression : queryStatement ( queryOperator ^ queryStatement )* ;
	public final HiveParser.queryStatementExpression_return queryStatementExpression() throws RecognitionException {
		HiveParser.queryStatementExpression_return retval = new HiveParser.queryStatementExpression_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope queryStatement714 =null;
		ParserRuleReturnScope queryOperator715 =null;
		ParserRuleReturnScope queryStatement716 =null;


		try {
			// HiveParser.g:1824:5: ( queryStatement ( queryOperator ^ queryStatement )* )
			// HiveParser.g:1824:7: queryStatement ( queryOperator ^ queryStatement )*
			{
			root_0 = (CommonTree)adaptor.nil();


			pushFollow(FOLLOW_queryStatement_in_queryStatementExpression11378);
			queryStatement714=queryStatement();
			state._fsp--;

			adaptor.addChild(root_0, queryStatement714.getTree());

			// HiveParser.g:1824:22: ( queryOperator ^ queryStatement )*
			loop187:
			while (true) {
				int alt187=2;
				int LA187_0 = input.LA(1);
				if ( (LA187_0==KW_UNION) ) {
					alt187=1;
				}

				switch (alt187) {
				case 1 :
					// HiveParser.g:1824:23: queryOperator ^ queryStatement
					{
					pushFollow(FOLLOW_queryOperator_in_queryStatementExpression11381);
					queryOperator715=queryOperator();
					state._fsp--;

					root_0 = (CommonTree)adaptor.becomeRoot(queryOperator715.getTree(), root_0);
					pushFollow(FOLLOW_queryStatement_in_queryStatementExpression11384);
					queryStatement716=queryStatement();
					state._fsp--;

					adaptor.addChild(root_0, queryStatement716.getTree());

					}
					break;

				default :
					break loop187;
				}
			}

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "queryStatementExpression"


	public static class queryStatement_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "queryStatement"
	// HiveParser.g:1827:1: queryStatement : ( fromClause (b+= body )+ -> ^( TOK_QUERY fromClause ( body )+ ) | regular_body );
	public final HiveParser.queryStatement_return queryStatement() throws RecognitionException {
		HiveParser.queryStatement_return retval = new HiveParser.queryStatement_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		List<Object> list_b=null;
		ParserRuleReturnScope fromClause717 =null;
		ParserRuleReturnScope regular_body718 =null;
		RuleReturnScope b = null;
		RewriteRuleSubtreeStream stream_body=new RewriteRuleSubtreeStream(adaptor,"rule body");
		RewriteRuleSubtreeStream stream_fromClause=new RewriteRuleSubtreeStream(adaptor,"rule fromClause");

		try {
			// HiveParser.g:1828:5: ( fromClause (b+= body )+ -> ^( TOK_QUERY fromClause ( body )+ ) | regular_body )
			int alt189=2;
			int LA189_0 = input.LA(1);
			if ( (LA189_0==KW_FROM) ) {
				alt189=1;
			}
			else if ( (LA189_0==KW_INSERT||LA189_0==KW_MAP||LA189_0==KW_REDUCE||LA189_0==KW_SELECT) ) {
				alt189=2;
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 189, 0, input);
				throw nvae;
			}

			switch (alt189) {
				case 1 :
					// HiveParser.g:1829:5: fromClause (b+= body )+
					{
					pushFollow(FOLLOW_fromClause_in_queryStatement11407);
					fromClause717=fromClause();
					state._fsp--;

					stream_fromClause.add(fromClause717.getTree());
					// HiveParser.g:1830:5: (b+= body )+
					int cnt188=0;
					loop188:
					while (true) {
						int alt188=2;
						int LA188_0 = input.LA(1);
						if ( (LA188_0==KW_INSERT||LA188_0==KW_MAP||LA188_0==KW_REDUCE||LA188_0==KW_SELECT) ) {
							alt188=1;
						}

						switch (alt188) {
						case 1 :
							// HiveParser.g:1830:7: b+= body
							{
							pushFollow(FOLLOW_body_in_queryStatement11417);
							b=body();
							state._fsp--;

							stream_body.add(b.getTree());
							if (list_b==null) list_b=new ArrayList<Object>();
							list_b.add(b.getTree());
							}
							break;

						default :
							if ( cnt188 >= 1 ) break loop188;
							EarlyExitException eee = new EarlyExitException(188, input);
							throw eee;
						}
						cnt188++;
					}

					// AST REWRITE
					// elements: body, fromClause
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1830:18: -> ^( TOK_QUERY fromClause ( body )+ )
					{
						// HiveParser.g:1830:21: ^( TOK_QUERY fromClause ( body )+ )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_QUERY, "TOK_QUERY"), root_1);
						adaptor.addChild(root_1, stream_fromClause.nextTree());
						if ( !(stream_body.hasNext()) ) {
							throw new RewriteEarlyExitException();
						}
						while ( stream_body.hasNext() ) {
							adaptor.addChild(root_1, stream_body.nextTree());
						}
						stream_body.reset();

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// HiveParser.g:1831:7: regular_body
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_regular_body_in_queryStatement11439);
					regular_body718=regular_body();
					state._fsp--;

					adaptor.addChild(root_0, regular_body718.getTree());

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "queryStatement"


	public static class regular_body_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "regular_body"
	// HiveParser.g:1834:1: regular_body : ( insertClause selectClause fromClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_QUERY fromClause ^( TOK_INSERT insertClause selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) ) | selectStatement );
	public final HiveParser.regular_body_return regular_body() throws RecognitionException {
		HiveParser.regular_body_return retval = new HiveParser.regular_body_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope insertClause719 =null;
		ParserRuleReturnScope selectClause720 =null;
		ParserRuleReturnScope fromClause721 =null;
		ParserRuleReturnScope whereClause722 =null;
		ParserRuleReturnScope groupByClause723 =null;
		ParserRuleReturnScope havingClause724 =null;
		ParserRuleReturnScope orderByClause725 =null;
		ParserRuleReturnScope clusterByClause726 =null;
		ParserRuleReturnScope distributeByClause727 =null;
		ParserRuleReturnScope sortByClause728 =null;
		ParserRuleReturnScope window_clause729 =null;
		ParserRuleReturnScope limitClause730 =null;
		ParserRuleReturnScope selectStatement731 =null;

		RewriteRuleSubtreeStream stream_whereClause=new RewriteRuleSubtreeStream(adaptor,"rule whereClause");
		RewriteRuleSubtreeStream stream_window_clause=new RewriteRuleSubtreeStream(adaptor,"rule window_clause");
		RewriteRuleSubtreeStream stream_clusterByClause=new RewriteRuleSubtreeStream(adaptor,"rule clusterByClause");
		RewriteRuleSubtreeStream stream_distributeByClause=new RewriteRuleSubtreeStream(adaptor,"rule distributeByClause");
		RewriteRuleSubtreeStream stream_limitClause=new RewriteRuleSubtreeStream(adaptor,"rule limitClause");
		RewriteRuleSubtreeStream stream_orderByClause=new RewriteRuleSubtreeStream(adaptor,"rule orderByClause");
		RewriteRuleSubtreeStream stream_sortByClause=new RewriteRuleSubtreeStream(adaptor,"rule sortByClause");
		RewriteRuleSubtreeStream stream_insertClause=new RewriteRuleSubtreeStream(adaptor,"rule insertClause");
		RewriteRuleSubtreeStream stream_groupByClause=new RewriteRuleSubtreeStream(adaptor,"rule groupByClause");
		RewriteRuleSubtreeStream stream_havingClause=new RewriteRuleSubtreeStream(adaptor,"rule havingClause");
		RewriteRuleSubtreeStream stream_selectClause=new RewriteRuleSubtreeStream(adaptor,"rule selectClause");
		RewriteRuleSubtreeStream stream_fromClause=new RewriteRuleSubtreeStream(adaptor,"rule fromClause");

		try {
			// HiveParser.g:1835:4: ( insertClause selectClause fromClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_QUERY fromClause ^( TOK_INSERT insertClause selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) ) | selectStatement )
			int alt199=2;
			int LA199_0 = input.LA(1);
			if ( (LA199_0==KW_INSERT) ) {
				alt199=1;
			}
			else if ( (LA199_0==KW_MAP||LA199_0==KW_REDUCE||LA199_0==KW_SELECT) ) {
				alt199=2;
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 199, 0, input);
				throw nvae;
			}

			switch (alt199) {
				case 1 :
					// HiveParser.g:1836:4: insertClause selectClause fromClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )?
					{
					pushFollow(FOLLOW_insertClause_in_regular_body11458);
					insertClause719=insertClause();
					state._fsp--;

					stream_insertClause.add(insertClause719.getTree());
					pushFollow(FOLLOW_selectClause_in_regular_body11463);
					selectClause720=selectClause();
					state._fsp--;

					stream_selectClause.add(selectClause720.getTree());
					pushFollow(FOLLOW_fromClause_in_regular_body11468);
					fromClause721=fromClause();
					state._fsp--;

					stream_fromClause.add(fromClause721.getTree());
					// HiveParser.g:1839:4: ( whereClause )?
					int alt190=2;
					int LA190_0 = input.LA(1);
					if ( (LA190_0==KW_WHERE) ) {
						alt190=1;
					}
					switch (alt190) {
						case 1 :
							// HiveParser.g:1839:4: whereClause
							{
							pushFollow(FOLLOW_whereClause_in_regular_body11473);
							whereClause722=whereClause();
							state._fsp--;

							stream_whereClause.add(whereClause722.getTree());
							}
							break;

					}

					// HiveParser.g:1840:4: ( groupByClause )?
					int alt191=2;
					int LA191_0 = input.LA(1);
					if ( (LA191_0==KW_GROUP) ) {
						alt191=1;
					}
					switch (alt191) {
						case 1 :
							// HiveParser.g:1840:4: groupByClause
							{
							pushFollow(FOLLOW_groupByClause_in_regular_body11479);
							groupByClause723=groupByClause();
							state._fsp--;

							stream_groupByClause.add(groupByClause723.getTree());
							}
							break;

					}

					// HiveParser.g:1841:4: ( havingClause )?
					int alt192=2;
					int LA192_0 = input.LA(1);
					if ( (LA192_0==KW_HAVING) ) {
						alt192=1;
					}
					switch (alt192) {
						case 1 :
							// HiveParser.g:1841:4: havingClause
							{
							pushFollow(FOLLOW_havingClause_in_regular_body11485);
							havingClause724=havingClause();
							state._fsp--;

							stream_havingClause.add(havingClause724.getTree());
							}
							break;

					}

					// HiveParser.g:1842:4: ( orderByClause )?
					int alt193=2;
					int LA193_0 = input.LA(1);
					if ( (LA193_0==KW_ORDER) ) {
						alt193=1;
					}
					switch (alt193) {
						case 1 :
							// HiveParser.g:1842:4: orderByClause
							{
							pushFollow(FOLLOW_orderByClause_in_regular_body11491);
							orderByClause725=orderByClause();
							state._fsp--;

							stream_orderByClause.add(orderByClause725.getTree());
							}
							break;

					}

					// HiveParser.g:1843:4: ( clusterByClause )?
					int alt194=2;
					int LA194_0 = input.LA(1);
					if ( (LA194_0==KW_CLUSTER) ) {
						alt194=1;
					}
					switch (alt194) {
						case 1 :
							// HiveParser.g:1843:4: clusterByClause
							{
							pushFollow(FOLLOW_clusterByClause_in_regular_body11497);
							clusterByClause726=clusterByClause();
							state._fsp--;

							stream_clusterByClause.add(clusterByClause726.getTree());
							}
							break;

					}

					// HiveParser.g:1844:4: ( distributeByClause )?
					int alt195=2;
					int LA195_0 = input.LA(1);
					if ( (LA195_0==KW_DISTRIBUTE) ) {
						alt195=1;
					}
					switch (alt195) {
						case 1 :
							// HiveParser.g:1844:4: distributeByClause
							{
							pushFollow(FOLLOW_distributeByClause_in_regular_body11503);
							distributeByClause727=distributeByClause();
							state._fsp--;

							stream_distributeByClause.add(distributeByClause727.getTree());
							}
							break;

					}

					// HiveParser.g:1845:4: ( sortByClause )?
					int alt196=2;
					int LA196_0 = input.LA(1);
					if ( (LA196_0==KW_SORT) ) {
						alt196=1;
					}
					switch (alt196) {
						case 1 :
							// HiveParser.g:1845:4: sortByClause
							{
							pushFollow(FOLLOW_sortByClause_in_regular_body11509);
							sortByClause728=sortByClause();
							state._fsp--;

							stream_sortByClause.add(sortByClause728.getTree());
							}
							break;

					}

					// HiveParser.g:1846:4: ( window_clause )?
					int alt197=2;
					int LA197_0 = input.LA(1);
					if ( (LA197_0==KW_WINDOW) ) {
						alt197=1;
					}
					switch (alt197) {
						case 1 :
							// HiveParser.g:1846:4: window_clause
							{
							pushFollow(FOLLOW_window_clause_in_regular_body11515);
							window_clause729=window_clause();
							state._fsp--;

							stream_window_clause.add(window_clause729.getTree());
							}
							break;

					}

					// HiveParser.g:1847:4: ( limitClause )?
					int alt198=2;
					int LA198_0 = input.LA(1);
					if ( (LA198_0==KW_LIMIT) ) {
						alt198=1;
					}
					switch (alt198) {
						case 1 :
							// HiveParser.g:1847:4: limitClause
							{
							pushFollow(FOLLOW_limitClause_in_regular_body11521);
							limitClause730=limitClause();
							state._fsp--;

							stream_limitClause.add(limitClause730.getTree());
							}
							break;

					}

					// AST REWRITE
					// elements: whereClause, selectClause, insertClause, distributeByClause, orderByClause, window_clause, fromClause, groupByClause, sortByClause, limitClause, clusterByClause, havingClause
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1847:17: -> ^( TOK_QUERY fromClause ^( TOK_INSERT insertClause selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) )
					{
						// HiveParser.g:1847:20: ^( TOK_QUERY fromClause ^( TOK_INSERT insertClause selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_QUERY, "TOK_QUERY"), root_1);
						adaptor.addChild(root_1, stream_fromClause.nextTree());
						// HiveParser.g:1847:43: ^( TOK_INSERT insertClause selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? )
						{
						CommonTree root_2 = (CommonTree)adaptor.nil();
						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_INSERT, "TOK_INSERT"), root_2);
						adaptor.addChild(root_2, stream_insertClause.nextTree());
						adaptor.addChild(root_2, stream_selectClause.nextTree());
						// HiveParser.g:1848:35: ( whereClause )?
						if ( stream_whereClause.hasNext() ) {
							adaptor.addChild(root_2, stream_whereClause.nextTree());
						}
						stream_whereClause.reset();

						// HiveParser.g:1848:48: ( groupByClause )?
						if ( stream_groupByClause.hasNext() ) {
							adaptor.addChild(root_2, stream_groupByClause.nextTree());
						}
						stream_groupByClause.reset();

						// HiveParser.g:1848:63: ( havingClause )?
						if ( stream_havingClause.hasNext() ) {
							adaptor.addChild(root_2, stream_havingClause.nextTree());
						}
						stream_havingClause.reset();

						// HiveParser.g:1848:77: ( orderByClause )?
						if ( stream_orderByClause.hasNext() ) {
							adaptor.addChild(root_2, stream_orderByClause.nextTree());
						}
						stream_orderByClause.reset();

						// HiveParser.g:1848:92: ( clusterByClause )?
						if ( stream_clusterByClause.hasNext() ) {
							adaptor.addChild(root_2, stream_clusterByClause.nextTree());
						}
						stream_clusterByClause.reset();

						// HiveParser.g:1849:22: ( distributeByClause )?
						if ( stream_distributeByClause.hasNext() ) {
							adaptor.addChild(root_2, stream_distributeByClause.nextTree());
						}
						stream_distributeByClause.reset();

						// HiveParser.g:1849:42: ( sortByClause )?
						if ( stream_sortByClause.hasNext() ) {
							adaptor.addChild(root_2, stream_sortByClause.nextTree());
						}
						stream_sortByClause.reset();

						// HiveParser.g:1849:56: ( window_clause )?
						if ( stream_window_clause.hasNext() ) {
							adaptor.addChild(root_2, stream_window_clause.nextTree());
						}
						stream_window_clause.reset();

						// HiveParser.g:1849:71: ( limitClause )?
						if ( stream_limitClause.hasNext() ) {
							adaptor.addChild(root_2, stream_limitClause.nextTree());
						}
						stream_limitClause.reset();

						adaptor.addChild(root_1, root_2);
						}

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// HiveParser.g:1851:4: selectStatement
					{
					root_0 = (CommonTree)adaptor.nil();


					pushFollow(FOLLOW_selectStatement_in_regular_body11617);
					selectStatement731=selectStatement();
					state._fsp--;

					adaptor.addChild(root_0, selectStatement731.getTree());

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "regular_body"


	public static class selectStatement_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "selectStatement"
	// HiveParser.g:1854:1: selectStatement : selectClause fromClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_QUERY fromClause ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) ) ;
	public final HiveParser.selectStatement_return selectStatement() throws RecognitionException {
		HiveParser.selectStatement_return retval = new HiveParser.selectStatement_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope selectClause732 =null;
		ParserRuleReturnScope fromClause733 =null;
		ParserRuleReturnScope whereClause734 =null;
		ParserRuleReturnScope groupByClause735 =null;
		ParserRuleReturnScope havingClause736 =null;
		ParserRuleReturnScope orderByClause737 =null;
		ParserRuleReturnScope clusterByClause738 =null;
		ParserRuleReturnScope distributeByClause739 =null;
		ParserRuleReturnScope sortByClause740 =null;
		ParserRuleReturnScope window_clause741 =null;
		ParserRuleReturnScope limitClause742 =null;

		RewriteRuleSubtreeStream stream_whereClause=new RewriteRuleSubtreeStream(adaptor,"rule whereClause");
		RewriteRuleSubtreeStream stream_window_clause=new RewriteRuleSubtreeStream(adaptor,"rule window_clause");
		RewriteRuleSubtreeStream stream_clusterByClause=new RewriteRuleSubtreeStream(adaptor,"rule clusterByClause");
		RewriteRuleSubtreeStream stream_distributeByClause=new RewriteRuleSubtreeStream(adaptor,"rule distributeByClause");
		RewriteRuleSubtreeStream stream_limitClause=new RewriteRuleSubtreeStream(adaptor,"rule limitClause");
		RewriteRuleSubtreeStream stream_orderByClause=new RewriteRuleSubtreeStream(adaptor,"rule orderByClause");
		RewriteRuleSubtreeStream stream_sortByClause=new RewriteRuleSubtreeStream(adaptor,"rule sortByClause");
		RewriteRuleSubtreeStream stream_groupByClause=new RewriteRuleSubtreeStream(adaptor,"rule groupByClause");
		RewriteRuleSubtreeStream stream_havingClause=new RewriteRuleSubtreeStream(adaptor,"rule havingClause");
		RewriteRuleSubtreeStream stream_selectClause=new RewriteRuleSubtreeStream(adaptor,"rule selectClause");
		RewriteRuleSubtreeStream stream_fromClause=new RewriteRuleSubtreeStream(adaptor,"rule fromClause");

		try {
			// HiveParser.g:1855:4: ( selectClause fromClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_QUERY fromClause ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) ) )
			// HiveParser.g:1856:4: selectClause fromClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )?
			{
			pushFollow(FOLLOW_selectClause_in_selectStatement11635);
			selectClause732=selectClause();
			state._fsp--;

			stream_selectClause.add(selectClause732.getTree());
			pushFollow(FOLLOW_fromClause_in_selectStatement11640);
			fromClause733=fromClause();
			state._fsp--;

			stream_fromClause.add(fromClause733.getTree());
			// HiveParser.g:1858:4: ( whereClause )?
			int alt200=2;
			int LA200_0 = input.LA(1);
			if ( (LA200_0==KW_WHERE) ) {
				alt200=1;
			}
			switch (alt200) {
				case 1 :
					// HiveParser.g:1858:4: whereClause
					{
					pushFollow(FOLLOW_whereClause_in_selectStatement11645);
					whereClause734=whereClause();
					state._fsp--;

					stream_whereClause.add(whereClause734.getTree());
					}
					break;

			}

			// HiveParser.g:1859:4: ( groupByClause )?
			int alt201=2;
			int LA201_0 = input.LA(1);
			if ( (LA201_0==KW_GROUP) ) {
				alt201=1;
			}
			switch (alt201) {
				case 1 :
					// HiveParser.g:1859:4: groupByClause
					{
					pushFollow(FOLLOW_groupByClause_in_selectStatement11651);
					groupByClause735=groupByClause();
					state._fsp--;

					stream_groupByClause.add(groupByClause735.getTree());
					}
					break;

			}

			// HiveParser.g:1860:4: ( havingClause )?
			int alt202=2;
			int LA202_0 = input.LA(1);
			if ( (LA202_0==KW_HAVING) ) {
				alt202=1;
			}
			switch (alt202) {
				case 1 :
					// HiveParser.g:1860:4: havingClause
					{
					pushFollow(FOLLOW_havingClause_in_selectStatement11657);
					havingClause736=havingClause();
					state._fsp--;

					stream_havingClause.add(havingClause736.getTree());
					}
					break;

			}

			// HiveParser.g:1861:4: ( orderByClause )?
			int alt203=2;
			int LA203_0 = input.LA(1);
			if ( (LA203_0==KW_ORDER) ) {
				alt203=1;
			}
			switch (alt203) {
				case 1 :
					// HiveParser.g:1861:4: orderByClause
					{
					pushFollow(FOLLOW_orderByClause_in_selectStatement11663);
					orderByClause737=orderByClause();
					state._fsp--;

					stream_orderByClause.add(orderByClause737.getTree());
					}
					break;

			}

			// HiveParser.g:1862:4: ( clusterByClause )?
			int alt204=2;
			int LA204_0 = input.LA(1);
			if ( (LA204_0==KW_CLUSTER) ) {
				alt204=1;
			}
			switch (alt204) {
				case 1 :
					// HiveParser.g:1862:4: clusterByClause
					{
					pushFollow(FOLLOW_clusterByClause_in_selectStatement11669);
					clusterByClause738=clusterByClause();
					state._fsp--;

					stream_clusterByClause.add(clusterByClause738.getTree());
					}
					break;

			}

			// HiveParser.g:1863:4: ( distributeByClause )?
			int alt205=2;
			int LA205_0 = input.LA(1);
			if ( (LA205_0==KW_DISTRIBUTE) ) {
				alt205=1;
			}
			switch (alt205) {
				case 1 :
					// HiveParser.g:1863:4: distributeByClause
					{
					pushFollow(FOLLOW_distributeByClause_in_selectStatement11675);
					distributeByClause739=distributeByClause();
					state._fsp--;

					stream_distributeByClause.add(distributeByClause739.getTree());
					}
					break;

			}

			// HiveParser.g:1864:4: ( sortByClause )?
			int alt206=2;
			int LA206_0 = input.LA(1);
			if ( (LA206_0==KW_SORT) ) {
				alt206=1;
			}
			switch (alt206) {
				case 1 :
					// HiveParser.g:1864:4: sortByClause
					{
					pushFollow(FOLLOW_sortByClause_in_selectStatement11681);
					sortByClause740=sortByClause();
					state._fsp--;

					stream_sortByClause.add(sortByClause740.getTree());
					}
					break;

			}

			// HiveParser.g:1865:4: ( window_clause )?
			int alt207=2;
			int LA207_0 = input.LA(1);
			if ( (LA207_0==KW_WINDOW) ) {
				alt207=1;
			}
			switch (alt207) {
				case 1 :
					// HiveParser.g:1865:4: window_clause
					{
					pushFollow(FOLLOW_window_clause_in_selectStatement11687);
					window_clause741=window_clause();
					state._fsp--;

					stream_window_clause.add(window_clause741.getTree());
					}
					break;

			}

			// HiveParser.g:1866:4: ( limitClause )?
			int alt208=2;
			int LA208_0 = input.LA(1);
			if ( (LA208_0==KW_LIMIT) ) {
				alt208=1;
			}
			switch (alt208) {
				case 1 :
					// HiveParser.g:1866:4: limitClause
					{
					pushFollow(FOLLOW_limitClause_in_selectStatement11693);
					limitClause742=limitClause();
					state._fsp--;

					stream_limitClause.add(limitClause742.getTree());
					}
					break;

			}

			// AST REWRITE
			// elements: orderByClause, window_clause, whereClause, fromClause, distributeByClause, groupByClause, sortByClause, havingClause, selectClause, limitClause, clusterByClause
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1866:17: -> ^( TOK_QUERY fromClause ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) )
			{
				// HiveParser.g:1866:20: ^( TOK_QUERY fromClause ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_QUERY, "TOK_QUERY"), root_1);
				adaptor.addChild(root_1, stream_fromClause.nextTree());
				// HiveParser.g:1866:43: ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? )
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_INSERT, "TOK_INSERT"), root_2);
				// HiveParser.g:1866:56: ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) )
				{
				CommonTree root_3 = (CommonTree)adaptor.nil();
				root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_DESTINATION, "TOK_DESTINATION"), root_3);
				// HiveParser.g:1866:74: ^( TOK_DIR TOK_TMP_FILE )
				{
				CommonTree root_4 = (CommonTree)adaptor.nil();
				root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_DIR, "TOK_DIR"), root_4);
				adaptor.addChild(root_4, (CommonTree)adaptor.create(TOK_TMP_FILE, "TOK_TMP_FILE"));
				adaptor.addChild(root_3, root_4);
				}

				adaptor.addChild(root_2, root_3);
				}

				adaptor.addChild(root_2, stream_selectClause.nextTree());
				// HiveParser.g:1867:35: ( whereClause )?
				if ( stream_whereClause.hasNext() ) {
					adaptor.addChild(root_2, stream_whereClause.nextTree());
				}
				stream_whereClause.reset();

				// HiveParser.g:1867:48: ( groupByClause )?
				if ( stream_groupByClause.hasNext() ) {
					adaptor.addChild(root_2, stream_groupByClause.nextTree());
				}
				stream_groupByClause.reset();

				// HiveParser.g:1867:63: ( havingClause )?
				if ( stream_havingClause.hasNext() ) {
					adaptor.addChild(root_2, stream_havingClause.nextTree());
				}
				stream_havingClause.reset();

				// HiveParser.g:1867:77: ( orderByClause )?
				if ( stream_orderByClause.hasNext() ) {
					adaptor.addChild(root_2, stream_orderByClause.nextTree());
				}
				stream_orderByClause.reset();

				// HiveParser.g:1867:92: ( clusterByClause )?
				if ( stream_clusterByClause.hasNext() ) {
					adaptor.addChild(root_2, stream_clusterByClause.nextTree());
				}
				stream_clusterByClause.reset();

				// HiveParser.g:1868:22: ( distributeByClause )?
				if ( stream_distributeByClause.hasNext() ) {
					adaptor.addChild(root_2, stream_distributeByClause.nextTree());
				}
				stream_distributeByClause.reset();

				// HiveParser.g:1868:42: ( sortByClause )?
				if ( stream_sortByClause.hasNext() ) {
					adaptor.addChild(root_2, stream_sortByClause.nextTree());
				}
				stream_sortByClause.reset();

				// HiveParser.g:1868:56: ( window_clause )?
				if ( stream_window_clause.hasNext() ) {
					adaptor.addChild(root_2, stream_window_clause.nextTree());
				}
				stream_window_clause.reset();

				// HiveParser.g:1868:71: ( limitClause )?
				if ( stream_limitClause.hasNext() ) {
					adaptor.addChild(root_2, stream_limitClause.nextTree());
				}
				stream_limitClause.reset();

				adaptor.addChild(root_1, root_2);
				}

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "selectStatement"


	public static class body_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "body"
	// HiveParser.g:1872:1: body : ( insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_INSERT insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) | selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) );
	public final HiveParser.body_return body() throws RecognitionException {
		HiveParser.body_return retval = new HiveParser.body_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope insertClause743 =null;
		ParserRuleReturnScope selectClause744 =null;
		ParserRuleReturnScope lateralView745 =null;
		ParserRuleReturnScope whereClause746 =null;
		ParserRuleReturnScope groupByClause747 =null;
		ParserRuleReturnScope havingClause748 =null;
		ParserRuleReturnScope orderByClause749 =null;
		ParserRuleReturnScope clusterByClause750 =null;
		ParserRuleReturnScope distributeByClause751 =null;
		ParserRuleReturnScope sortByClause752 =null;
		ParserRuleReturnScope window_clause753 =null;
		ParserRuleReturnScope limitClause754 =null;
		ParserRuleReturnScope selectClause755 =null;
		ParserRuleReturnScope lateralView756 =null;
		ParserRuleReturnScope whereClause757 =null;
		ParserRuleReturnScope groupByClause758 =null;
		ParserRuleReturnScope havingClause759 =null;
		ParserRuleReturnScope orderByClause760 =null;
		ParserRuleReturnScope clusterByClause761 =null;
		ParserRuleReturnScope distributeByClause762 =null;
		ParserRuleReturnScope sortByClause763 =null;
		ParserRuleReturnScope window_clause764 =null;
		ParserRuleReturnScope limitClause765 =null;

		RewriteRuleSubtreeStream stream_whereClause=new RewriteRuleSubtreeStream(adaptor,"rule whereClause");
		RewriteRuleSubtreeStream stream_window_clause=new RewriteRuleSubtreeStream(adaptor,"rule window_clause");
		RewriteRuleSubtreeStream stream_clusterByClause=new RewriteRuleSubtreeStream(adaptor,"rule clusterByClause");
		RewriteRuleSubtreeStream stream_distributeByClause=new RewriteRuleSubtreeStream(adaptor,"rule distributeByClause");
		RewriteRuleSubtreeStream stream_lateralView=new RewriteRuleSubtreeStream(adaptor,"rule lateralView");
		RewriteRuleSubtreeStream stream_limitClause=new RewriteRuleSubtreeStream(adaptor,"rule limitClause");
		RewriteRuleSubtreeStream stream_orderByClause=new RewriteRuleSubtreeStream(adaptor,"rule orderByClause");
		RewriteRuleSubtreeStream stream_sortByClause=new RewriteRuleSubtreeStream(adaptor,"rule sortByClause");
		RewriteRuleSubtreeStream stream_insertClause=new RewriteRuleSubtreeStream(adaptor,"rule insertClause");
		RewriteRuleSubtreeStream stream_groupByClause=new RewriteRuleSubtreeStream(adaptor,"rule groupByClause");
		RewriteRuleSubtreeStream stream_havingClause=new RewriteRuleSubtreeStream(adaptor,"rule havingClause");
		RewriteRuleSubtreeStream stream_selectClause=new RewriteRuleSubtreeStream(adaptor,"rule selectClause");

		try {
			// HiveParser.g:1873:4: ( insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_INSERT insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) | selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? -> ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? ) )
			int alt229=2;
			int LA229_0 = input.LA(1);
			if ( (LA229_0==KW_INSERT) ) {
				alt229=1;
			}
			else if ( (LA229_0==KW_MAP||LA229_0==KW_REDUCE||LA229_0==KW_SELECT) ) {
				alt229=2;
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 229, 0, input);
				throw nvae;
			}

			switch (alt229) {
				case 1 :
					// HiveParser.g:1874:4: insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )?
					{
					pushFollow(FOLLOW_insertClause_in_body11806);
					insertClause743=insertClause();
					state._fsp--;

					stream_insertClause.add(insertClause743.getTree());
					pushFollow(FOLLOW_selectClause_in_body11811);
					selectClause744=selectClause();
					state._fsp--;

					stream_selectClause.add(selectClause744.getTree());
					// HiveParser.g:1876:4: ( lateralView )?
					int alt209=2;
					int LA209_0 = input.LA(1);
					if ( (LA209_0==KW_LATERAL) ) {
						alt209=1;
					}
					switch (alt209) {
						case 1 :
							// HiveParser.g:1876:4: lateralView
							{
							pushFollow(FOLLOW_lateralView_in_body11816);
							lateralView745=lateralView();
							state._fsp--;

							stream_lateralView.add(lateralView745.getTree());
							}
							break;

					}

					// HiveParser.g:1877:4: ( whereClause )?
					int alt210=2;
					int LA210_0 = input.LA(1);
					if ( (LA210_0==KW_WHERE) ) {
						alt210=1;
					}
					switch (alt210) {
						case 1 :
							// HiveParser.g:1877:4: whereClause
							{
							pushFollow(FOLLOW_whereClause_in_body11822);
							whereClause746=whereClause();
							state._fsp--;

							stream_whereClause.add(whereClause746.getTree());
							}
							break;

					}

					// HiveParser.g:1878:4: ( groupByClause )?
					int alt211=2;
					int LA211_0 = input.LA(1);
					if ( (LA211_0==KW_GROUP) ) {
						alt211=1;
					}
					switch (alt211) {
						case 1 :
							// HiveParser.g:1878:4: groupByClause
							{
							pushFollow(FOLLOW_groupByClause_in_body11828);
							groupByClause747=groupByClause();
							state._fsp--;

							stream_groupByClause.add(groupByClause747.getTree());
							}
							break;

					}

					// HiveParser.g:1879:4: ( havingClause )?
					int alt212=2;
					int LA212_0 = input.LA(1);
					if ( (LA212_0==KW_HAVING) ) {
						alt212=1;
					}
					switch (alt212) {
						case 1 :
							// HiveParser.g:1879:4: havingClause
							{
							pushFollow(FOLLOW_havingClause_in_body11834);
							havingClause748=havingClause();
							state._fsp--;

							stream_havingClause.add(havingClause748.getTree());
							}
							break;

					}

					// HiveParser.g:1880:4: ( orderByClause )?
					int alt213=2;
					int LA213_0 = input.LA(1);
					if ( (LA213_0==KW_ORDER) ) {
						alt213=1;
					}
					switch (alt213) {
						case 1 :
							// HiveParser.g:1880:4: orderByClause
							{
							pushFollow(FOLLOW_orderByClause_in_body11840);
							orderByClause749=orderByClause();
							state._fsp--;

							stream_orderByClause.add(orderByClause749.getTree());
							}
							break;

					}

					// HiveParser.g:1881:4: ( clusterByClause )?
					int alt214=2;
					int LA214_0 = input.LA(1);
					if ( (LA214_0==KW_CLUSTER) ) {
						alt214=1;
					}
					switch (alt214) {
						case 1 :
							// HiveParser.g:1881:4: clusterByClause
							{
							pushFollow(FOLLOW_clusterByClause_in_body11846);
							clusterByClause750=clusterByClause();
							state._fsp--;

							stream_clusterByClause.add(clusterByClause750.getTree());
							}
							break;

					}

					// HiveParser.g:1882:4: ( distributeByClause )?
					int alt215=2;
					int LA215_0 = input.LA(1);
					if ( (LA215_0==KW_DISTRIBUTE) ) {
						alt215=1;
					}
					switch (alt215) {
						case 1 :
							// HiveParser.g:1882:4: distributeByClause
							{
							pushFollow(FOLLOW_distributeByClause_in_body11852);
							distributeByClause751=distributeByClause();
							state._fsp--;

							stream_distributeByClause.add(distributeByClause751.getTree());
							}
							break;

					}

					// HiveParser.g:1883:4: ( sortByClause )?
					int alt216=2;
					int LA216_0 = input.LA(1);
					if ( (LA216_0==KW_SORT) ) {
						alt216=1;
					}
					switch (alt216) {
						case 1 :
							// HiveParser.g:1883:4: sortByClause
							{
							pushFollow(FOLLOW_sortByClause_in_body11858);
							sortByClause752=sortByClause();
							state._fsp--;

							stream_sortByClause.add(sortByClause752.getTree());
							}
							break;

					}

					// HiveParser.g:1884:4: ( window_clause )?
					int alt217=2;
					int LA217_0 = input.LA(1);
					if ( (LA217_0==KW_WINDOW) ) {
						alt217=1;
					}
					switch (alt217) {
						case 1 :
							// HiveParser.g:1884:4: window_clause
							{
							pushFollow(FOLLOW_window_clause_in_body11864);
							window_clause753=window_clause();
							state._fsp--;

							stream_window_clause.add(window_clause753.getTree());
							}
							break;

					}

					// HiveParser.g:1885:4: ( limitClause )?
					int alt218=2;
					int LA218_0 = input.LA(1);
					if ( (LA218_0==KW_LIMIT) ) {
						alt218=1;
					}
					switch (alt218) {
						case 1 :
							// HiveParser.g:1885:4: limitClause
							{
							pushFollow(FOLLOW_limitClause_in_body11870);
							limitClause754=limitClause();
							state._fsp--;

							stream_limitClause.add(limitClause754.getTree());
							}
							break;

					}

					// AST REWRITE
					// elements: sortByClause, distributeByClause, orderByClause, clusterByClause, window_clause, groupByClause, lateralView, whereClause, havingClause, selectClause, insertClause, limitClause
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1885:17: -> ^( TOK_INSERT insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? )
					{
						// HiveParser.g:1885:20: ^( TOK_INSERT insertClause selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_INSERT, "TOK_INSERT"), root_1);
						adaptor.addChild(root_1, stream_insertClause.nextTree());
						adaptor.addChild(root_1, stream_selectClause.nextTree());
						// HiveParser.g:1886:35: ( lateralView )?
						if ( stream_lateralView.hasNext() ) {
							adaptor.addChild(root_1, stream_lateralView.nextTree());
						}
						stream_lateralView.reset();

						// HiveParser.g:1886:48: ( whereClause )?
						if ( stream_whereClause.hasNext() ) {
							adaptor.addChild(root_1, stream_whereClause.nextTree());
						}
						stream_whereClause.reset();

						// HiveParser.g:1886:61: ( groupByClause )?
						if ( stream_groupByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_groupByClause.nextTree());
						}
						stream_groupByClause.reset();

						// HiveParser.g:1886:76: ( havingClause )?
						if ( stream_havingClause.hasNext() ) {
							adaptor.addChild(root_1, stream_havingClause.nextTree());
						}
						stream_havingClause.reset();

						// HiveParser.g:1886:90: ( orderByClause )?
						if ( stream_orderByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_orderByClause.nextTree());
						}
						stream_orderByClause.reset();

						// HiveParser.g:1886:105: ( clusterByClause )?
						if ( stream_clusterByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_clusterByClause.nextTree());
						}
						stream_clusterByClause.reset();

						// HiveParser.g:1887:22: ( distributeByClause )?
						if ( stream_distributeByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_distributeByClause.nextTree());
						}
						stream_distributeByClause.reset();

						// HiveParser.g:1887:42: ( sortByClause )?
						if ( stream_sortByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_sortByClause.nextTree());
						}
						stream_sortByClause.reset();

						// HiveParser.g:1887:56: ( window_clause )?
						if ( stream_window_clause.hasNext() ) {
							adaptor.addChild(root_1, stream_window_clause.nextTree());
						}
						stream_window_clause.reset();

						// HiveParser.g:1887:71: ( limitClause )?
						if ( stream_limitClause.hasNext() ) {
							adaptor.addChild(root_1, stream_limitClause.nextTree());
						}
						stream_limitClause.reset();

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// HiveParser.g:1889:4: selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )?
					{
					pushFollow(FOLLOW_selectClause_in_body11963);
					selectClause755=selectClause();
					state._fsp--;

					stream_selectClause.add(selectClause755.getTree());
					// HiveParser.g:1890:4: ( lateralView )?
					int alt219=2;
					int LA219_0 = input.LA(1);
					if ( (LA219_0==KW_LATERAL) ) {
						alt219=1;
					}
					switch (alt219) {
						case 1 :
							// HiveParser.g:1890:4: lateralView
							{
							pushFollow(FOLLOW_lateralView_in_body11968);
							lateralView756=lateralView();
							state._fsp--;

							stream_lateralView.add(lateralView756.getTree());
							}
							break;

					}

					// HiveParser.g:1891:4: ( whereClause )?
					int alt220=2;
					int LA220_0 = input.LA(1);
					if ( (LA220_0==KW_WHERE) ) {
						alt220=1;
					}
					switch (alt220) {
						case 1 :
							// HiveParser.g:1891:4: whereClause
							{
							pushFollow(FOLLOW_whereClause_in_body11974);
							whereClause757=whereClause();
							state._fsp--;

							stream_whereClause.add(whereClause757.getTree());
							}
							break;

					}

					// HiveParser.g:1892:4: ( groupByClause )?
					int alt221=2;
					int LA221_0 = input.LA(1);
					if ( (LA221_0==KW_GROUP) ) {
						alt221=1;
					}
					switch (alt221) {
						case 1 :
							// HiveParser.g:1892:4: groupByClause
							{
							pushFollow(FOLLOW_groupByClause_in_body11980);
							groupByClause758=groupByClause();
							state._fsp--;

							stream_groupByClause.add(groupByClause758.getTree());
							}
							break;

					}

					// HiveParser.g:1893:4: ( havingClause )?
					int alt222=2;
					int LA222_0 = input.LA(1);
					if ( (LA222_0==KW_HAVING) ) {
						alt222=1;
					}
					switch (alt222) {
						case 1 :
							// HiveParser.g:1893:4: havingClause
							{
							pushFollow(FOLLOW_havingClause_in_body11986);
							havingClause759=havingClause();
							state._fsp--;

							stream_havingClause.add(havingClause759.getTree());
							}
							break;

					}

					// HiveParser.g:1894:4: ( orderByClause )?
					int alt223=2;
					int LA223_0 = input.LA(1);
					if ( (LA223_0==KW_ORDER) ) {
						alt223=1;
					}
					switch (alt223) {
						case 1 :
							// HiveParser.g:1894:4: orderByClause
							{
							pushFollow(FOLLOW_orderByClause_in_body11992);
							orderByClause760=orderByClause();
							state._fsp--;

							stream_orderByClause.add(orderByClause760.getTree());
							}
							break;

					}

					// HiveParser.g:1895:4: ( clusterByClause )?
					int alt224=2;
					int LA224_0 = input.LA(1);
					if ( (LA224_0==KW_CLUSTER) ) {
						alt224=1;
					}
					switch (alt224) {
						case 1 :
							// HiveParser.g:1895:4: clusterByClause
							{
							pushFollow(FOLLOW_clusterByClause_in_body11998);
							clusterByClause761=clusterByClause();
							state._fsp--;

							stream_clusterByClause.add(clusterByClause761.getTree());
							}
							break;

					}

					// HiveParser.g:1896:4: ( distributeByClause )?
					int alt225=2;
					int LA225_0 = input.LA(1);
					if ( (LA225_0==KW_DISTRIBUTE) ) {
						alt225=1;
					}
					switch (alt225) {
						case 1 :
							// HiveParser.g:1896:4: distributeByClause
							{
							pushFollow(FOLLOW_distributeByClause_in_body12004);
							distributeByClause762=distributeByClause();
							state._fsp--;

							stream_distributeByClause.add(distributeByClause762.getTree());
							}
							break;

					}

					// HiveParser.g:1897:4: ( sortByClause )?
					int alt226=2;
					int LA226_0 = input.LA(1);
					if ( (LA226_0==KW_SORT) ) {
						alt226=1;
					}
					switch (alt226) {
						case 1 :
							// HiveParser.g:1897:4: sortByClause
							{
							pushFollow(FOLLOW_sortByClause_in_body12010);
							sortByClause763=sortByClause();
							state._fsp--;

							stream_sortByClause.add(sortByClause763.getTree());
							}
							break;

					}

					// HiveParser.g:1898:4: ( window_clause )?
					int alt227=2;
					int LA227_0 = input.LA(1);
					if ( (LA227_0==KW_WINDOW) ) {
						alt227=1;
					}
					switch (alt227) {
						case 1 :
							// HiveParser.g:1898:4: window_clause
							{
							pushFollow(FOLLOW_window_clause_in_body12016);
							window_clause764=window_clause();
							state._fsp--;

							stream_window_clause.add(window_clause764.getTree());
							}
							break;

					}

					// HiveParser.g:1899:4: ( limitClause )?
					int alt228=2;
					int LA228_0 = input.LA(1);
					if ( (LA228_0==KW_LIMIT) ) {
						alt228=1;
					}
					switch (alt228) {
						case 1 :
							// HiveParser.g:1899:4: limitClause
							{
							pushFollow(FOLLOW_limitClause_in_body12022);
							limitClause765=limitClause();
							state._fsp--;

							stream_limitClause.add(limitClause765.getTree());
							}
							break;

					}

					// AST REWRITE
					// elements: sortByClause, selectClause, whereClause, distributeByClause, clusterByClause, orderByClause, window_clause, limitClause, havingClause, lateralView, groupByClause
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1899:17: -> ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? )
					{
						// HiveParser.g:1899:20: ^( TOK_INSERT ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) ) selectClause ( lateralView )? ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( clusterByClause )? ( distributeByClause )? ( sortByClause )? ( window_clause )? ( limitClause )? )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_INSERT, "TOK_INSERT"), root_1);
						// HiveParser.g:1899:33: ^( TOK_DESTINATION ^( TOK_DIR TOK_TMP_FILE ) )
						{
						CommonTree root_2 = (CommonTree)adaptor.nil();
						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_DESTINATION, "TOK_DESTINATION"), root_2);
						// HiveParser.g:1899:51: ^( TOK_DIR TOK_TMP_FILE )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_DIR, "TOK_DIR"), root_3);
						adaptor.addChild(root_3, (CommonTree)adaptor.create(TOK_TMP_FILE, "TOK_TMP_FILE"));
						adaptor.addChild(root_2, root_3);
						}

						adaptor.addChild(root_1, root_2);
						}

						adaptor.addChild(root_1, stream_selectClause.nextTree());
						// HiveParser.g:1900:35: ( lateralView )?
						if ( stream_lateralView.hasNext() ) {
							adaptor.addChild(root_1, stream_lateralView.nextTree());
						}
						stream_lateralView.reset();

						// HiveParser.g:1900:48: ( whereClause )?
						if ( stream_whereClause.hasNext() ) {
							adaptor.addChild(root_1, stream_whereClause.nextTree());
						}
						stream_whereClause.reset();

						// HiveParser.g:1900:61: ( groupByClause )?
						if ( stream_groupByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_groupByClause.nextTree());
						}
						stream_groupByClause.reset();

						// HiveParser.g:1900:76: ( havingClause )?
						if ( stream_havingClause.hasNext() ) {
							adaptor.addChild(root_1, stream_havingClause.nextTree());
						}
						stream_havingClause.reset();

						// HiveParser.g:1900:90: ( orderByClause )?
						if ( stream_orderByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_orderByClause.nextTree());
						}
						stream_orderByClause.reset();

						// HiveParser.g:1900:105: ( clusterByClause )?
						if ( stream_clusterByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_clusterByClause.nextTree());
						}
						stream_clusterByClause.reset();

						// HiveParser.g:1901:22: ( distributeByClause )?
						if ( stream_distributeByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_distributeByClause.nextTree());
						}
						stream_distributeByClause.reset();

						// HiveParser.g:1901:42: ( sortByClause )?
						if ( stream_sortByClause.hasNext() ) {
							adaptor.addChild(root_1, stream_sortByClause.nextTree());
						}
						stream_sortByClause.reset();

						// HiveParser.g:1901:56: ( window_clause )?
						if ( stream_window_clause.hasNext() ) {
							adaptor.addChild(root_1, stream_window_clause.nextTree());
						}
						stream_window_clause.reset();

						// HiveParser.g:1901:71: ( limitClause )?
						if ( stream_limitClause.hasNext() ) {
							adaptor.addChild(root_1, stream_limitClause.nextTree());
						}
						stream_limitClause.reset();

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "body"


	public static class insertClause_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "insertClause"
	// HiveParser.g:1904:1: insertClause : ( KW_INSERT KW_OVERWRITE destination ( ifNotExists )? -> ^( TOK_DESTINATION destination ( ifNotExists )? ) | KW_INSERT KW_INTO KW_TABLE tableOrPartition -> ^( TOK_INSERT_INTO tableOrPartition ) );
	public final HiveParser.insertClause_return insertClause() throws RecognitionException {
		HiveParser.insertClause_return retval = new HiveParser.insertClause_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_INSERT766=null;
		Token KW_OVERWRITE767=null;
		Token KW_INSERT770=null;
		Token KW_INTO771=null;
		Token KW_TABLE772=null;
		ParserRuleReturnScope destination768 =null;
		ParserRuleReturnScope ifNotExists769 =null;
		ParserRuleReturnScope tableOrPartition773 =null;

		CommonTree KW_INSERT766_tree=null;
		CommonTree KW_OVERWRITE767_tree=null;
		CommonTree KW_INSERT770_tree=null;
		CommonTree KW_INTO771_tree=null;
		CommonTree KW_TABLE772_tree=null;
		RewriteRuleTokenStream stream_KW_INTO=new RewriteRuleTokenStream(adaptor,"token KW_INTO");
		RewriteRuleTokenStream stream_KW_TABLE=new RewriteRuleTokenStream(adaptor,"token KW_TABLE");
		RewriteRuleTokenStream stream_KW_OVERWRITE=new RewriteRuleTokenStream(adaptor,"token KW_OVERWRITE");
		RewriteRuleTokenStream stream_KW_INSERT=new RewriteRuleTokenStream(adaptor,"token KW_INSERT");
		RewriteRuleSubtreeStream stream_tableOrPartition=new RewriteRuleSubtreeStream(adaptor,"rule tableOrPartition");
		RewriteRuleSubtreeStream stream_ifNotExists=new RewriteRuleSubtreeStream(adaptor,"rule ifNotExists");
		RewriteRuleSubtreeStream stream_destination=new RewriteRuleSubtreeStream(adaptor,"rule destination");

		 msgs.push("insert clause"); 
		try {
			// HiveParser.g:1907:4: ( KW_INSERT KW_OVERWRITE destination ( ifNotExists )? -> ^( TOK_DESTINATION destination ( ifNotExists )? ) | KW_INSERT KW_INTO KW_TABLE tableOrPartition -> ^( TOK_INSERT_INTO tableOrPartition ) )
			int alt231=2;
			int LA231_0 = input.LA(1);
			if ( (LA231_0==KW_INSERT) ) {
				int LA231_1 = input.LA(2);
				if ( (LA231_1==KW_OVERWRITE) ) {
					alt231=1;
				}
				else if ( (LA231_1==KW_INTO) ) {
					alt231=2;
				}

				else {
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 231, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 231, 0, input);
				throw nvae;
			}

			switch (alt231) {
				case 1 :
					// HiveParser.g:1908:6: KW_INSERT KW_OVERWRITE destination ( ifNotExists )?
					{
					KW_INSERT766=(Token)match(input,KW_INSERT,FOLLOW_KW_INSERT_in_insertClause12143);  
					stream_KW_INSERT.add(KW_INSERT766);

					KW_OVERWRITE767=(Token)match(input,KW_OVERWRITE,FOLLOW_KW_OVERWRITE_in_insertClause12145);  
					stream_KW_OVERWRITE.add(KW_OVERWRITE767);

					pushFollow(FOLLOW_destination_in_insertClause12147);
					destination768=destination();
					state._fsp--;

					stream_destination.add(destination768.getTree());
					// HiveParser.g:1908:41: ( ifNotExists )?
					int alt230=2;
					int LA230_0 = input.LA(1);
					if ( (LA230_0==KW_IF) ) {
						alt230=1;
					}
					switch (alt230) {
						case 1 :
							// HiveParser.g:1908:41: ifNotExists
							{
							pushFollow(FOLLOW_ifNotExists_in_insertClause12149);
							ifNotExists769=ifNotExists();
							state._fsp--;

							stream_ifNotExists.add(ifNotExists769.getTree());
							}
							break;

					}

					// AST REWRITE
					// elements: ifNotExists, destination
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1908:54: -> ^( TOK_DESTINATION destination ( ifNotExists )? )
					{
						// HiveParser.g:1908:57: ^( TOK_DESTINATION destination ( ifNotExists )? )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_DESTINATION, "TOK_DESTINATION"), root_1);
						adaptor.addChild(root_1, stream_destination.nextTree());
						// HiveParser.g:1908:87: ( ifNotExists )?
						if ( stream_ifNotExists.hasNext() ) {
							adaptor.addChild(root_1, stream_ifNotExists.nextTree());
						}
						stream_ifNotExists.reset();

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// HiveParser.g:1909:6: KW_INSERT KW_INTO KW_TABLE tableOrPartition
					{
					KW_INSERT770=(Token)match(input,KW_INSERT,FOLLOW_KW_INSERT_in_insertClause12168);  
					stream_KW_INSERT.add(KW_INSERT770);

					KW_INTO771=(Token)match(input,KW_INTO,FOLLOW_KW_INTO_in_insertClause12170);  
					stream_KW_INTO.add(KW_INTO771);

					KW_TABLE772=(Token)match(input,KW_TABLE,FOLLOW_KW_TABLE_in_insertClause12172);  
					stream_KW_TABLE.add(KW_TABLE772);

					pushFollow(FOLLOW_tableOrPartition_in_insertClause12174);
					tableOrPartition773=tableOrPartition();
					state._fsp--;

					stream_tableOrPartition.add(tableOrPartition773.getTree());
					// AST REWRITE
					// elements: tableOrPartition
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1910:8: -> ^( TOK_INSERT_INTO tableOrPartition )
					{
						// HiveParser.g:1910:11: ^( TOK_INSERT_INTO tableOrPartition )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_INSERT_INTO, "TOK_INSERT_INTO"), root_1);
						adaptor.addChild(root_1, stream_tableOrPartition.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "insertClause"


	public static class destination_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "destination"
	// HiveParser.g:1913:1: destination : ( KW_LOCAL KW_DIRECTORY StringLiteral ( tableRowFormat )? ( tableFileFormat )? -> ^( TOK_LOCAL_DIR StringLiteral ( tableRowFormat )? ( tableFileFormat )? ) | KW_DIRECTORY StringLiteral -> ^( TOK_DIR StringLiteral ) | KW_TABLE tableOrPartition -> tableOrPartition );
	public final HiveParser.destination_return destination() throws RecognitionException {
		HiveParser.destination_return retval = new HiveParser.destination_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token KW_LOCAL774=null;
		Token KW_DIRECTORY775=null;
		Token StringLiteral776=null;
		Token KW_DIRECTORY779=null;
		Token StringLiteral780=null;
		Token KW_TABLE781=null;
		ParserRuleReturnScope tableRowFormat777 =null;
		ParserRuleReturnScope tableFileFormat778 =null;
		ParserRuleReturnScope tableOrPartition782 =null;

		CommonTree KW_LOCAL774_tree=null;
		CommonTree KW_DIRECTORY775_tree=null;
		CommonTree StringLiteral776_tree=null;
		CommonTree KW_DIRECTORY779_tree=null;
		CommonTree StringLiteral780_tree=null;
		CommonTree KW_TABLE781_tree=null;
		RewriteRuleTokenStream stream_StringLiteral=new RewriteRuleTokenStream(adaptor,"token StringLiteral");
		RewriteRuleTokenStream stream_KW_DIRECTORY=new RewriteRuleTokenStream(adaptor,"token KW_DIRECTORY");
		RewriteRuleTokenStream stream_KW_LOCAL=new RewriteRuleTokenStream(adaptor,"token KW_LOCAL");
		RewriteRuleTokenStream stream_KW_TABLE=new RewriteRuleTokenStream(adaptor,"token KW_TABLE");
		RewriteRuleSubtreeStream stream_tableOrPartition=new RewriteRuleSubtreeStream(adaptor,"rule tableOrPartition");
		RewriteRuleSubtreeStream stream_tableRowFormat=new RewriteRuleSubtreeStream(adaptor,"rule tableRowFormat");
		RewriteRuleSubtreeStream stream_tableFileFormat=new RewriteRuleSubtreeStream(adaptor,"rule tableFileFormat");

		 msgs.push("destination specification"); 
		try {
			// HiveParser.g:1916:4: ( KW_LOCAL KW_DIRECTORY StringLiteral ( tableRowFormat )? ( tableFileFormat )? -> ^( TOK_LOCAL_DIR StringLiteral ( tableRowFormat )? ( tableFileFormat )? ) | KW_DIRECTORY StringLiteral -> ^( TOK_DIR StringLiteral ) | KW_TABLE tableOrPartition -> tableOrPartition )
			int alt234=3;
			switch ( input.LA(1) ) {
			case KW_LOCAL:
				{
				alt234=1;
				}
				break;
			case KW_DIRECTORY:
				{
				alt234=2;
				}
				break;
			case KW_TABLE:
				{
				alt234=3;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 234, 0, input);
				throw nvae;
			}
			switch (alt234) {
				case 1 :
					// HiveParser.g:1917:6: KW_LOCAL KW_DIRECTORY StringLiteral ( tableRowFormat )? ( tableFileFormat )?
					{
					KW_LOCAL774=(Token)match(input,KW_LOCAL,FOLLOW_KW_LOCAL_in_destination12219);  
					stream_KW_LOCAL.add(KW_LOCAL774);

					KW_DIRECTORY775=(Token)match(input,KW_DIRECTORY,FOLLOW_KW_DIRECTORY_in_destination12221);  
					stream_KW_DIRECTORY.add(KW_DIRECTORY775);

					StringLiteral776=(Token)match(input,StringLiteral,FOLLOW_StringLiteral_in_destination12223);  
					stream_StringLiteral.add(StringLiteral776);

					// HiveParser.g:1917:42: ( tableRowFormat )?
					int alt232=2;
					int LA232_0 = input.LA(1);
					if ( (LA232_0==KW_ROW) ) {
						alt232=1;
					}
					switch (alt232) {
						case 1 :
							// HiveParser.g:1917:42: tableRowFormat
							{
							pushFollow(FOLLOW_tableRowFormat_in_destination12225);
							tableRowFormat777=tableRowFormat();
							state._fsp--;

							stream_tableRowFormat.add(tableRowFormat777.getTree());
							}
							break;

					}

					// HiveParser.g:1917:58: ( tableFileFormat )?
					int alt233=2;
					int LA233_0 = input.LA(1);
					if ( (LA233_0==KW_STORED) ) {
						alt233=1;
					}
					switch (alt233) {
						case 1 :
							// HiveParser.g:1917:58: tableFileFormat
							{
							pushFollow(FOLLOW_tableFileFormat_in_destination12228);
							tableFileFormat778=tableFileFormat();
							state._fsp--;

							stream_tableFileFormat.add(tableFileFormat778.getTree());
							}
							break;

					}

					// AST REWRITE
					// elements: tableRowFormat, tableFileFormat, StringLiteral
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1917:75: -> ^( TOK_LOCAL_DIR StringLiteral ( tableRowFormat )? ( tableFileFormat )? )
					{
						// HiveParser.g:1917:78: ^( TOK_LOCAL_DIR StringLiteral ( tableRowFormat )? ( tableFileFormat )? )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_LOCAL_DIR, "TOK_LOCAL_DIR"), root_1);
						adaptor.addChild(root_1, stream_StringLiteral.nextNode());
						// HiveParser.g:1917:108: ( tableRowFormat )?
						if ( stream_tableRowFormat.hasNext() ) {
							adaptor.addChild(root_1, stream_tableRowFormat.nextTree());
						}
						stream_tableRowFormat.reset();

						// HiveParser.g:1917:124: ( tableFileFormat )?
						if ( stream_tableFileFormat.hasNext() ) {
							adaptor.addChild(root_1, stream_tableFileFormat.nextTree());
						}
						stream_tableFileFormat.reset();

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// HiveParser.g:1918:6: KW_DIRECTORY StringLiteral
					{
					KW_DIRECTORY779=(Token)match(input,KW_DIRECTORY,FOLLOW_KW_DIRECTORY_in_destination12250);  
					stream_KW_DIRECTORY.add(KW_DIRECTORY779);

					StringLiteral780=(Token)match(input,StringLiteral,FOLLOW_StringLiteral_in_destination12252);  
					stream_StringLiteral.add(StringLiteral780);

					// AST REWRITE
					// elements: StringLiteral
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1918:33: -> ^( TOK_DIR StringLiteral )
					{
						// HiveParser.g:1918:36: ^( TOK_DIR StringLiteral )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_DIR, "TOK_DIR"), root_1);
						adaptor.addChild(root_1, stream_StringLiteral.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 3 :
					// HiveParser.g:1919:6: KW_TABLE tableOrPartition
					{
					KW_TABLE781=(Token)match(input,KW_TABLE,FOLLOW_KW_TABLE_in_destination12267);  
					stream_KW_TABLE.add(KW_TABLE781);

					pushFollow(FOLLOW_tableOrPartition_in_destination12269);
					tableOrPartition782=tableOrPartition();
					state._fsp--;

					stream_tableOrPartition.add(tableOrPartition782.getTree());
					// AST REWRITE
					// elements: tableOrPartition
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 1919:32: -> tableOrPartition
					{
						adaptor.addChild(root_0, stream_tableOrPartition.nextTree());
					}


					retval.tree = root_0;

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "destination"


	public static class limitClause_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "limitClause"
	// HiveParser.g:1922:1: limitClause : KW_LIMIT num= Number -> ^( TOK_LIMIT $num) ;
	public final HiveParser.limitClause_return limitClause() throws RecognitionException {
		HiveParser.limitClause_return retval = new HiveParser.limitClause_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token num=null;
		Token KW_LIMIT783=null;

		CommonTree num_tree=null;
		CommonTree KW_LIMIT783_tree=null;
		RewriteRuleTokenStream stream_Number=new RewriteRuleTokenStream(adaptor,"token Number");
		RewriteRuleTokenStream stream_KW_LIMIT=new RewriteRuleTokenStream(adaptor,"token KW_LIMIT");

		 msgs.push("limit clause"); 
		try {
			// HiveParser.g:1925:4: ( KW_LIMIT num= Number -> ^( TOK_LIMIT $num) )
			// HiveParser.g:1926:4: KW_LIMIT num= Number
			{
			KW_LIMIT783=(Token)match(input,KW_LIMIT,FOLLOW_KW_LIMIT_in_limitClause12301);  
			stream_KW_LIMIT.add(KW_LIMIT783);

			num=(Token)match(input,Number,FOLLOW_Number_in_limitClause12305);  
			stream_Number.add(num);

			// AST REWRITE
			// elements: num
			// token labels: num
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_num=new RewriteRuleTokenStream(adaptor,"token num",num);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 1926:24: -> ^( TOK_LIMIT $num)
			{
				// HiveParser.g:1926:27: ^( TOK_LIMIT $num)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TOK_LIMIT, "TOK_LIMIT"), root_1);
				adaptor.addChild(root_1, stream_num.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

			 msgs.pop(); 
		}

		catch (RecognitionException e) {
		 reportError(e);
		  throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "limitClause"

	// Delegated rules
	public HiveParser_IdentifiersParser.whenExpression_return whenExpression() throws RecognitionException { return gIdentifiersParser.whenExpression(); }

	public HiveParser_IdentifiersParser.precedenceBitwiseOrOperator_return precedenceBitwiseOrOperator() throws RecognitionException { return gIdentifiersParser.precedenceBitwiseOrOperator(); }

	public HiveParser_IdentifiersParser.sortByClause_return sortByClause() throws RecognitionException { return gIdentifiersParser.sortByClause(); }

	public HiveParser_IdentifiersParser.precedenceAmpersandExpression_return precedenceAmpersandExpression() throws RecognitionException { return gIdentifiersParser.precedenceAmpersandExpression(); }

	public HiveParser_IdentifiersParser.clusterByClause_return clusterByClause() throws RecognitionException { return gIdentifiersParser.clusterByClause(); }

	public HiveParser_SelectClauseParser.startDate_return startDate() throws RecognitionException { return gSelectClauseParser.startDate(); }

	public HiveParser_SelectClauseParser.window_range_expression_return window_range_expression() throws RecognitionException { return gSelectClauseParser.window_range_expression(); }

	public HiveParser_SelectClauseParser.selectList_return selectList() throws RecognitionException { return gSelectClauseParser.selectList(); }

	public HiveParser_IdentifiersParser.precedenceEqualNegatableOperator_return precedenceEqualNegatableOperator() throws RecognitionException { return gIdentifiersParser.precedenceEqualNegatableOperator(); }

	public HiveParser_IdentifiersParser.precedenceStarExpression_return precedenceStarExpression() throws RecognitionException { return gIdentifiersParser.precedenceStarExpression(); }

	public HiveParser_IdentifiersParser.precedenceAndOperator_return precedenceAndOperator() throws RecognitionException { return gIdentifiersParser.precedenceAndOperator(); }

	public HiveParser_IdentifiersParser.tableOrPartition_return tableOrPartition() throws RecognitionException { return gIdentifiersParser.tableOrPartition(); }

	public HiveParser_IdentifiersParser.groupByExpression_return groupByExpression() throws RecognitionException { return gIdentifiersParser.groupByExpression(); }

	public HiveParser_IdentifiersParser.dropPartitionSpec_return dropPartitionSpec() throws RecognitionException { return gIdentifiersParser.dropPartitionSpec(); }

	public HiveParser_IdentifiersParser.precedenceNotOperator_return precedenceNotOperator() throws RecognitionException { return gIdentifiersParser.precedenceNotOperator(); }

	public HiveParser_FromClauseParser.uniqueJoinToken_return uniqueJoinToken() throws RecognitionException { return gFromClauseParser.uniqueJoinToken(); }

	public HiveParser_IdentifiersParser.precedenceOrExpression_return precedenceOrExpression() throws RecognitionException { return gIdentifiersParser.precedenceOrExpression(); }

	public HiveParser_SelectClauseParser.hintClause_return hintClause() throws RecognitionException { return gSelectClauseParser.hintClause(); }

	public HiveParser_FromClauseParser.tableSample_return tableSample() throws RecognitionException { return gFromClauseParser.tableSample(); }

	public HiveParser_IdentifiersParser.identifier_return identifier() throws RecognitionException { return gIdentifiersParser.identifier(); }

	public HiveParser_IdentifiersParser.partitionSpec_return partitionSpec() throws RecognitionException { return gIdentifiersParser.partitionSpec(); }

	public HiveParser_IdentifiersParser.orderByClause_return orderByClause() throws RecognitionException { return gIdentifiersParser.orderByClause(); }

	public HiveParser_SelectClauseParser.hintArgName_return hintArgName() throws RecognitionException { return gSelectClauseParser.hintArgName(); }

	public HiveParser_IdentifiersParser.havingCondition_return havingCondition() throws RecognitionException { return gIdentifiersParser.havingCondition(); }

	public HiveParser_SelectClauseParser.dateArgs_return dateArgs() throws RecognitionException { return gSelectClauseParser.dateArgs(); }

	public HiveParser_FromClauseParser.viewName_return viewName() throws RecognitionException { return gFromClauseParser.viewName(); }

	public HiveParser_SelectClauseParser.year_or_month_return year_or_month() throws RecognitionException { return gSelectClauseParser.year_or_month(); }

	public HiveParser_IdentifiersParser.expression_return expression() throws RecognitionException { return gIdentifiersParser.expression(); }

	public HiveParser_FromClauseParser.lateralView_return lateralView() throws RecognitionException { return gFromClauseParser.lateralView(); }

	public HiveParser_SelectClauseParser.incrementalClause_return incrementalClause() throws RecognitionException { return gSelectClauseParser.incrementalClause(); }

	public HiveParser_IdentifiersParser.precedenceEqualExpression_return precedenceEqualExpression() throws RecognitionException { return gIdentifiersParser.precedenceEqualExpression(); }

	public HiveParser_IdentifiersParser.groupingSetExpression_return groupingSetExpression() throws RecognitionException { return gIdentifiersParser.groupingSetExpression(); }

	public HiveParser_FromClauseParser.aliasList_return aliasList() throws RecognitionException { return gFromClauseParser.aliasList(); }

	public HiveParser_SelectClauseParser.trfmClause_return trfmClause() throws RecognitionException { return gSelectClauseParser.trfmClause(); }

	public HiveParser_FromClauseParser.uniqueJoinExpr_return uniqueJoinExpr() throws RecognitionException { return gFromClauseParser.uniqueJoinExpr(); }

	public HiveParser_IdentifiersParser.dropPartitionOperator_return dropPartitionOperator() throws RecognitionException { return gIdentifiersParser.dropPartitionOperator(); }

	public HiveParser_FromClauseParser.fromSource_return fromSource() throws RecognitionException { return gFromClauseParser.fromSource(); }

	public HiveParser_FromClauseParser.tableAlias_return tableAlias() throws RecognitionException { return gFromClauseParser.tableAlias(); }

	public HiveParser_IdentifiersParser.precedenceBitwiseXorOperator_return precedenceBitwiseXorOperator() throws RecognitionException { return gIdentifiersParser.precedenceBitwiseXorOperator(); }

	public HiveParser_IdentifiersParser.functionName_return functionName() throws RecognitionException { return gIdentifiersParser.functionName(); }

	public HiveParser_SelectClauseParser.hintArgs_return hintArgs() throws RecognitionException { return gSelectClauseParser.hintArgs(); }

	public HiveParser_IdentifiersParser.precedenceFieldExpression_return precedenceFieldExpression() throws RecognitionException { return gIdentifiersParser.precedenceFieldExpression(); }

	public HiveParser_SelectClauseParser.betweenDate_return betweenDate() throws RecognitionException { return gSelectClauseParser.betweenDate(); }

	public HiveParser_IdentifiersParser.castExpression_return castExpression() throws RecognitionException { return gIdentifiersParser.castExpression(); }

	public HiveParser_SelectClauseParser.hintName_return hintName() throws RecognitionException { return gSelectClauseParser.hintName(); }

	public HiveParser_FromClauseParser.joinSource_return joinSource() throws RecognitionException { return gFromClauseParser.joinSource(); }

	public HiveParser_IdentifiersParser.function_return function() throws RecognitionException { return gIdentifiersParser.function(); }

	public HiveParser_SelectClauseParser.window_frame_return window_frame() throws RecognitionException { return gSelectClauseParser.window_frame(); }

	public HiveParser_SelectClauseParser.window_specification_return window_specification() throws RecognitionException { return gSelectClauseParser.window_specification(); }

	public HiveParser_IdentifiersParser.atomExpression_return atomExpression() throws RecognitionException { return gIdentifiersParser.atomExpression(); }

	public HiveParser_SelectClauseParser.window_frame_start_boundary_return window_frame_start_boundary() throws RecognitionException { return gSelectClauseParser.window_frame_start_boundary(); }

	public HiveParser_IdentifiersParser.nonReserved_return nonReserved() throws RecognitionException { return gIdentifiersParser.nonReserved(); }

	public HiveParser_IdentifiersParser.stringLiteralSequence_return stringLiteralSequence() throws RecognitionException { return gIdentifiersParser.stringLiteralSequence(); }

	public HiveParser_IdentifiersParser.precedenceUnaryPrefixExpression_return precedenceUnaryPrefixExpression() throws RecognitionException { return gIdentifiersParser.precedenceUnaryPrefixExpression(); }

	public HiveParser_SelectClauseParser.window_value_expression_return window_value_expression() throws RecognitionException { return gSelectClauseParser.window_value_expression(); }

	public HiveParser_SelectClauseParser.indefinite_date_return indefinite_date() throws RecognitionException { return gSelectClauseParser.indefinite_date(); }

	public HiveParser_IdentifiersParser.precedenceOrOperator_return precedenceOrOperator() throws RecognitionException { return gIdentifiersParser.precedenceOrOperator(); }

	public HiveParser_FromClauseParser.whereClause_return whereClause() throws RecognitionException { return gFromClauseParser.whereClause(); }

	public HiveParser_FromClauseParser.subQuerySource_return subQuerySource() throws RecognitionException { return gFromClauseParser.subQuerySource(); }

	public HiveParser_SelectClauseParser.selectItem_return selectItem() throws RecognitionException { return gSelectClauseParser.selectItem(); }

	public HiveParser_IdentifiersParser.precedenceAndExpression_return precedenceAndExpression() throws RecognitionException { return gIdentifiersParser.precedenceAndExpression(); }

	public HiveParser_FromClauseParser.tableAllColumns_return tableAllColumns() throws RecognitionException { return gFromClauseParser.tableAllColumns(); }

	public HiveParser_SelectClauseParser.selectExpression_return selectExpression() throws RecognitionException { return gSelectClauseParser.selectExpression(); }

	public HiveParser_SelectClauseParser.hintList_return hintList() throws RecognitionException { return gSelectClauseParser.hintList(); }

	public HiveParser_IdentifiersParser.precedenceUnarySuffixExpression_return precedenceUnarySuffixExpression() throws RecognitionException { return gIdentifiersParser.precedenceUnarySuffixExpression(); }

	public HiveParser_SelectClauseParser.window_clause_return window_clause() throws RecognitionException { return gSelectClauseParser.window_clause(); }

	public HiveParser_IdentifiersParser.charSetStringLiteral_return charSetStringLiteral() throws RecognitionException { return gIdentifiersParser.charSetStringLiteral(); }

	public HiveParser_IdentifiersParser.precedenceBitwiseOrExpression_return precedenceBitwiseOrExpression() throws RecognitionException { return gIdentifiersParser.precedenceBitwiseOrExpression(); }

	public HiveParser_IdentifiersParser.distributeByClause_return distributeByClause() throws RecognitionException { return gIdentifiersParser.distributeByClause(); }

	public HiveParser_IdentifiersParser.nullCondition_return nullCondition() throws RecognitionException { return gIdentifiersParser.nullCondition(); }

	public HiveParser_IdentifiersParser.precedenceEqualOperator_return precedenceEqualOperator() throws RecognitionException { return gIdentifiersParser.precedenceEqualOperator(); }

	public HiveParser_IdentifiersParser.precedenceStarOperator_return precedenceStarOperator() throws RecognitionException { return gIdentifiersParser.precedenceStarOperator(); }

	public HiveParser_IdentifiersParser.precedenceAmpersandOperator_return precedenceAmpersandOperator() throws RecognitionException { return gIdentifiersParser.precedenceAmpersandOperator(); }

	public HiveParser_IdentifiersParser.dateLiteral_return dateLiteral() throws RecognitionException { return gIdentifiersParser.dateLiteral(); }

	public HiveParser_FromClauseParser.fromClause_return fromClause() throws RecognitionException { return gFromClauseParser.fromClause(); }

	public HiveParser_SelectClauseParser.hintItem_return hintItem() throws RecognitionException { return gSelectClauseParser.hintItem(); }

	public HiveParser_IdentifiersParser.expressions_return expressions() throws RecognitionException { return gIdentifiersParser.expressions(); }

	public HiveParser_IdentifiersParser.constant_return constant() throws RecognitionException { return gIdentifiersParser.constant(); }

	public HiveParser_SelectClauseParser.incrementalArgs_return incrementalArgs() throws RecognitionException { return gSelectClauseParser.incrementalArgs(); }

	public HiveParser_FromClauseParser.partitioningSpec_return partitioningSpec() throws RecognitionException { return gFromClauseParser.partitioningSpec(); }

	public HiveParser_FromClauseParser.tableSource_return tableSource() throws RecognitionException { return gFromClauseParser.tableSource(); }

	public HiveParser_IdentifiersParser.precedenceNotExpression_return precedenceNotExpression() throws RecognitionException { return gIdentifiersParser.precedenceNotExpression(); }

	public HiveParser_IdentifiersParser.precedenceUnaryOperator_return precedenceUnaryOperator() throws RecognitionException { return gIdentifiersParser.precedenceUnaryOperator(); }

	public HiveParser_IdentifiersParser.descFuncNames_return descFuncNames() throws RecognitionException { return gIdentifiersParser.descFuncNames(); }

	public HiveParser_FromClauseParser.expressionList_return expressionList() throws RecognitionException { return gFromClauseParser.expressionList(); }

	public HiveParser_IdentifiersParser.precedenceBitwiseXorExpression_return precedenceBitwiseXorExpression() throws RecognitionException { return gIdentifiersParser.precedenceBitwiseXorExpression(); }

	public HiveParser_FromClauseParser.partitionedTableFunction_return partitionedTableFunction() throws RecognitionException { return gFromClauseParser.partitionedTableFunction(); }

	public HiveParser_IdentifiersParser.partitionVal_return partitionVal() throws RecognitionException { return gIdentifiersParser.partitionVal(); }

	public HiveParser_IdentifiersParser.precedencePlusOperator_return precedencePlusOperator() throws RecognitionException { return gIdentifiersParser.precedencePlusOperator(); }

	public HiveParser_SelectClauseParser.window_frame_boundary_return window_frame_boundary() throws RecognitionException { return gSelectClauseParser.window_frame_boundary(); }

	public HiveParser_FromClauseParser.joinToken_return joinToken() throws RecognitionException { return gFromClauseParser.joinToken(); }

	public HiveParser_FromClauseParser.uniqueJoinSource_return uniqueJoinSource() throws RecognitionException { return gFromClauseParser.uniqueJoinSource(); }

	public HiveParser_FromClauseParser.partitionTableFunctionSource_return partitionTableFunctionSource() throws RecognitionException { return gFromClauseParser.partitionTableFunctionSource(); }

	public HiveParser_FromClauseParser.tableBucketSample_return tableBucketSample() throws RecognitionException { return gFromClauseParser.tableBucketSample(); }

	public HiveParser_IdentifiersParser.havingClause_return havingClause() throws RecognitionException { return gIdentifiersParser.havingClause(); }

	public HiveParser_FromClauseParser.searchCondition_return searchCondition() throws RecognitionException { return gFromClauseParser.searchCondition(); }

	public HiveParser_SelectClauseParser.explicit_time_return explicit_time() throws RecognitionException { return gSelectClauseParser.explicit_time(); }

	public HiveParser_SelectClauseParser.selectExpressionList_return selectExpressionList() throws RecognitionException { return gSelectClauseParser.selectExpressionList(); }

	public HiveParser_FromClauseParser.tableName_return tableName() throws RecognitionException { return gFromClauseParser.tableName(); }

	public HiveParser_IdentifiersParser.sysFuncNames_return sysFuncNames() throws RecognitionException { return gIdentifiersParser.sysFuncNames(); }

	public HiveParser_IdentifiersParser.caseExpression_return caseExpression() throws RecognitionException { return gIdentifiersParser.caseExpression(); }

	public HiveParser_FromClauseParser.splitSample_return splitSample() throws RecognitionException { return gFromClauseParser.splitSample(); }

	public HiveParser_SelectClauseParser.selectClause_return selectClause() throws RecognitionException { return gSelectClauseParser.selectClause(); }

	public HiveParser_IdentifiersParser.partitionByClause_return partitionByClause() throws RecognitionException { return gIdentifiersParser.partitionByClause(); }

	public HiveParser_IdentifiersParser.dropPartitionVal_return dropPartitionVal() throws RecognitionException { return gIdentifiersParser.dropPartitionVal(); }

	public HiveParser_SelectClauseParser.window_defn_return window_defn() throws RecognitionException { return gSelectClauseParser.window_defn(); }

	public HiveParser_IdentifiersParser.booleanValue_return booleanValue() throws RecognitionException { return gIdentifiersParser.booleanValue(); }

	public HiveParser_FromClauseParser.tableOrColumn_return tableOrColumn() throws RecognitionException { return gFromClauseParser.tableOrColumn(); }

	public HiveParser_IdentifiersParser.groupByClause_return groupByClause() throws RecognitionException { return gIdentifiersParser.groupByClause(); }

	public HiveParser_SelectClauseParser.selectTrfmClause_return selectTrfmClause() throws RecognitionException { return gSelectClauseParser.selectTrfmClause(); }

	public HiveParser_IdentifiersParser.precedencePlusExpression_return precedencePlusExpression() throws RecognitionException { return gIdentifiersParser.precedencePlusExpression(); }


	protected DFA9 dfa9 = new DFA9(this);
	protected DFA48 dfa48 = new DFA48(this);
	protected DFA160 dfa160 = new DFA160(this);
	static final String DFA9_eotS =
		"\106\uffff";
	static final String DFA9_eofS =
		"\106\uffff";
	static final String DFA9_minS =
		"\1\50\1\115\1\uffff\1\115\4\uffff\1\101\4\uffff\2\47\1\171\13\uffff\1"+
		"\171\52\uffff";
	static final String DFA9_maxS =
		"\1\u010f\1\u0116\1\uffff\1\u0116\4\uffff\1\u00f8\4\uffff\2\u010e\1\u00a4"+
		"\13\uffff\1\u00a4\52\uffff";
	static final String DFA9_acceptS =
		"\2\uffff\1\2\1\uffff\1\6\1\7\1\10\2\uffff\1\12\1\23\1\24\1\25\3\uffff"+
		"\1\17\1\26\1\1\1\uffff\1\4\1\uffff\1\13\1\uffff\1\5\1\14\1\20\1\uffff"+
		"\1\27\1\3\1\uffff\1\11\7\uffff\1\32\1\33\5\uffff\1\34\1\30\10\uffff\1"+
		"\35\1\31\10\uffff\1\15\1\16\1\21\1\22";
	static final String DFA9_specialS =
		"\106\uffff}>";
	static final String[] DFA9_transitionS = {
			"\1\5\1\12\35\uffff\1\1\20\uffff\2\6\6\uffff\1\3\32\uffff\1\15\44\uffff"+
			"\1\13\12\uffff\1\11\53\uffff\1\16\21\uffff\1\10\32\uffff\1\4\6\uffff"+
			"\1\14\3\uffff\1\2",
			"\1\22\36\uffff\1\24\32\uffff\1\20\54\uffff\1\26\45\uffff\1\21\3\uffff"+
			"\1\22\26\uffff\1\24\3\uffff\1\17\34\uffff\1\26",
			"",
			"\1\35\71\uffff\1\32\122\uffff\1\34\3\uffff\1\35\26\uffff\1\30\3\uffff"+
			"\1\33\34\uffff\1\31",
			"",
			"",
			"",
			"",
			"\1\37\5\uffff\1\37\6\uffff\1\37\47\uffff\1\37\3\uffff\1\37\1\47\13\uffff"+
			"\2\37\30\uffff\1\37\36\uffff\1\37\31\uffff\1\50\4\uffff\1\37\25\uffff"+
			"\2\37\1\uffff\1\37",
			"",
			"",
			"",
			"",
			"\2\57\36\uffff\1\57\30\uffff\1\57\46\uffff\1\57\30\uffff\1\57\71\uffff"+
			"\1\56\6\uffff\1\57\10\uffff\1\57\43\uffff\1\57",
			"\2\71\36\uffff\1\71\30\uffff\1\71\46\uffff\1\71\30\uffff\1\71\71\uffff"+
			"\1\70\6\uffff\1\71\10\uffff\1\71\43\uffff\1\71",
			"\1\102\52\uffff\1\103",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"\1\104\52\uffff\1\105",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			""
	};

	static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS);
	static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS);
	static final char[] DFA9_min = DFA.unpackEncodedStringToUnsignedChars(DFA9_minS);
	static final char[] DFA9_max = DFA.unpackEncodedStringToUnsignedChars(DFA9_maxS);
	static final short[] DFA9_accept = DFA.unpackEncodedString(DFA9_acceptS);
	static final short[] DFA9_special = DFA.unpackEncodedString(DFA9_specialS);
	static final short[][] DFA9_transition;

	static {
		int numStates = DFA9_transitionS.length;
		DFA9_transition = new short[numStates][];
		for (int i=0; i<numStates; i++) {
			DFA9_transition[i] = DFA.unpackEncodedString(DFA9_transitionS[i]);
		}
	}

	protected class DFA9 extends DFA {

		public DFA9(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 9;
			this.eot = DFA9_eot;
			this.eof = DFA9_eof;
			this.min = DFA9_min;
			this.max = DFA9_max;
			this.accept = DFA9_accept;
			this.special = DFA9_special;
			this.transition = DFA9_transition;
		}
		@Override
		public String getDescription() {
			return "607:1: ddlStatement : ( createDatabaseStatement | switchDatabaseStatement | dropDatabaseStatement | createTableStatement | dropTableStatement | truncateTableStatement | alterStatement | descStatement | showStatement | metastoreCheck | createViewStatement | dropViewStatement | createFunctionStatement | createMacroStatement | createIndexStatement | dropIndexStatement | dropFunctionStatement | dropMacroStatement | analyzeStatement | lockStatement | unlockStatement | createRoleStatement | dropRoleStatement | grantPrivileges | revokePrivileges | showGrants | showRoleGrants | grantRole | revokeRole );";
		}
	}

	static final String DFA48_eotS =
		"\107\uffff";
	static final String DFA48_eofS =
		"\107\uffff";
	static final String DFA48_minS =
		"\1\41\2\25\1\uffff\1\u00ff\1\101\6\uffff\1\160\5\uffff\1\75\4\uffff\1"+
		"\u00ff\1\101\6\uffff\1\160\6\uffff\1\75\40\uffff";
	static final String DFA48_maxS =
		"\1\u011b\2\u010c\1\uffff\1\u00ff\1\u00be\6\uffff\1\u00f8\5\uffff\1\u00f1"+
		"\4\uffff\1\u00ff\1\u00be\6\uffff\1\u00f8\6\uffff\1\u00f1\40\uffff";
	static final String DFA48_acceptS =
		"\3\uffff\1\12\2\uffff\1\2\1\3\1\4\1\6\1\7\1\10\1\uffff\1\11\6\uffff\1"+
		"\13\1\14\25\uffff\1\1\1\uffff\1\5\13\uffff\1\1\15\uffff";
	static final String DFA48_specialS =
		"\107\uffff}>";
	static final String[] DFA48_transitionS = {
			"\1\1\3\uffff\2\2\1\uffff\2\2\1\uffff\16\2\2\uffff\5\2\1\uffff\4\2\1\uffff"+
			"\2\2\1\uffff\1\2\1\uffff\2\2\1\uffff\3\2\1\uffff\13\2\1\uffff\4\2\1\uffff"+
			"\1\2\1\uffff\1\2\1\uffff\4\2\1\uffff\7\2\1\uffff\3\2\1\uffff\1\2\1\uffff"+
			"\4\2\1\uffff\1\2\1\uffff\1\2\1\uffff\15\2\1\uffff\3\2\1\uffff\4\2\1\uffff"+
			"\12\2\2\uffff\3\2\2\uffff\2\2\1\uffff\4\2\1\uffff\1\2\1\uffff\6\2\1\uffff"+
			"\1\2\1\uffff\5\2\2\uffff\14\2\1\uffff\16\2\2\uffff\25\2\1\uffff\4\2\1"+
			"\uffff\4\2\1\uffff\4\2\1\uffff\3\2\1\uffff\12\2\1\uffff\1\2\2\uffff\1"+
			"\2\1\uffff\1\2",
			"\1\25\17\uffff\1\5\5\uffff\1\12\17\uffff\1\7\1\uffff\1\3\6\uffff\1\3"+
			"\27\uffff\1\3\3\uffff\1\10\2\uffff\1\3\2\uffff\1\25\52\uffff\1\3\33\uffff"+
			"\1\22\20\uffff\1\3\24\uffff\1\4\1\uffff\1\6\20\uffff\1\14\4\uffff\1\24"+
			"\24\uffff\1\11\4\uffff\1\13\6\uffff\1\15",
			"\1\25\17\uffff\1\30\5\uffff\1\12\17\uffff\1\7\1\uffff\1\3\6\uffff\1"+
			"\3\27\uffff\1\3\3\uffff\1\10\2\uffff\1\3\2\uffff\1\25\52\uffff\1\3\33"+
			"\uffff\1\46\20\uffff\1\3\24\uffff\1\27\1\uffff\1\6\20\uffff\1\37\4\uffff"+
			"\1\24\24\uffff\1\11\4\uffff\1\13\6\uffff\1\15",
			"",
			"\1\53",
			"\1\6\100\uffff\1\55\73\uffff\1\55",
			"",
			"",
			"",
			"",
			"",
			"",
			"\1\3\56\uffff\1\3\104\uffff\2\3\5\uffff\1\3\14\uffff\1\15",
			"",
			"",
			"",
			"",
			"",
			"\1\3\u00ad\uffff\1\24\2\uffff\1\3\2\uffff\1\24",
			"",
			"",
			"",
			"",
			"\1\71",
			"\1\6\100\uffff\1\55\73\uffff\1\55",
			"",
			"",
			"",
			"",
			"",
			"",
			"\1\3\56\uffff\1\3\104\uffff\2\3\5\uffff\1\3\14\uffff\1\15",
			"",
			"",
			"",
			"",
			"",
			"",
			"\1\3\u00ad\uffff\1\24\2\uffff\1\3\2\uffff\1\24",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			""
	};

	static final short[] DFA48_eot = DFA.unpackEncodedString(DFA48_eotS);
	static final short[] DFA48_eof = DFA.unpackEncodedString(DFA48_eofS);
	static final char[] DFA48_min = DFA.unpackEncodedStringToUnsignedChars(DFA48_minS);
	static final char[] DFA48_max = DFA.unpackEncodedStringToUnsignedChars(DFA48_maxS);
	static final short[] DFA48_accept = DFA.unpackEncodedString(DFA48_acceptS);
	static final short[] DFA48_special = DFA.unpackEncodedString(DFA48_specialS);
	static final short[][] DFA48_transition;

	static {
		int numStates = DFA48_transitionS.length;
		DFA48_transition = new short[numStates][];
		for (int i=0; i<numStates; i++) {
			DFA48_transition[i] = DFA.unpackEncodedString(DFA48_transitionS[i]);
		}
	}

	protected class DFA48 extends DFA {

		public DFA48(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 48;
			this.eot = DFA48_eot;
			this.eof = DFA48_eof;
			this.min = DFA48_min;
			this.max = DFA48_max;
			this.accept = DFA48_accept;
			this.special = DFA48_special;
			this.transition = DFA48_transition;
		}
		@Override
		public String getDescription() {
			return "873:1: alterTableStatementSuffix : ( alterStatementSuffixRename | alterStatementSuffixAddCol | alterStatementSuffixRenameCol | alterStatementSuffixDropPartitions | alterStatementSuffixAddPartitions | alterStatementSuffixTouch | alterStatementSuffixArchive | alterStatementSuffixUnArchive | alterStatementSuffixProperties | alterTblPartitionStatement | alterStatementSuffixSkewedby | alterStatementSuffixExchangePartition );";
		}
	}

	static final String DFA160_eotS =
		"\122\uffff";
	static final String DFA160_eofS =
		"\1\2\121\uffff";
	static final String DFA160_minS =
		"\1\55\1\11\33\uffff\1\4\64\uffff";
	static final String DFA160_maxS =
		"\1\u0130\1\u0141\33\uffff\1\u0136\64\uffff";
	static final String DFA160_acceptS =
		"\2\uffff\1\2\64\uffff\1\1\32\uffff";
	static final String DFA160_specialS =
		"\122\uffff}>";
	static final String[] DFA160_transitionS = {
			"\1\2\16\uffff\1\2\5\uffff\1\2\33\uffff\1\2\30\uffff\1\2\4\uffff\1\2\1"+
			"\uffff\1\2\3\uffff\1\2\12\uffff\1\2\11\uffff\1\2\3\uffff\2\2\2\uffff"+
			"\1\2\5\uffff\1\1\20\uffff\1\2\30\uffff\3\2\17\uffff\1\2\13\uffff\1\2"+
			"\3\uffff\1\2\6\uffff\1\2\17\uffff\1\2\10\uffff\1\2\6\uffff\1\2\1\uffff"+
			"\1\2\25\uffff\1\2",
			"\1\2\5\uffff\1\2\6\uffff\1\2\12\uffff\1\2\3\uffff\2\2\1\uffff\2\2\1"+
			"\uffff\25\2\1\uffff\4\2\1\uffff\2\2\1\uffff\1\2\1\uffff\2\2\1\uffff\3"+
			"\2\1\uffff\13\2\1\uffff\4\2\1\uffff\1\2\1\uffff\1\2\1\uffff\4\2\1\uffff"+
			"\7\2\1\uffff\3\2\1\uffff\1\2\1\uffff\4\2\1\uffff\1\2\1\uffff\17\2\1\uffff"+
			"\3\2\1\uffff\1\35\3\2\1\uffff\12\2\1\uffff\4\2\2\uffff\7\2\1\uffff\1"+
			"\2\1\uffff\6\2\1\uffff\1\2\1\uffff\5\2\2\uffff\14\2\1\uffff\16\2\2\uffff"+
			"\25\2\1\uffff\4\2\1\uffff\4\2\1\uffff\4\2\1\uffff\3\2\1\uffff\12\2\1"+
			"\uffff\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\1\2\4\uffff\1\2\6\uffff\1"+
			"\2\1\uffff\1\2\10\uffff\1\2\1\uffff\2\2\1\uffff\1\2\4\uffff\2\2",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"\1\2\2\uffff\2\2\3\uffff\1\2\5\uffff\2\2\1\uffff\1\2\2\uffff\2\2\3\uffff"+
			"\2\2\13\uffff\1\2\5\uffff\1\2\124\uffff\1\2\14\uffff\1\2\7\uffff\1\2"+
			"\22\uffff\1\2\6\uffff\1\2\33\uffff\1\2\1\uffff\1\2\6\uffff\1\2\2\uffff"+
			"\1\2\35\uffff\1\67\26\uffff\1\2\13\uffff\4\2\3\uffff\1\2\1\uffff\1\2"+
			"\2\uffff\1\2\3\uffff\1\2\10\uffff\1\2",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			""
	};

	static final short[] DFA160_eot = DFA.unpackEncodedString(DFA160_eotS);
	static final short[] DFA160_eof = DFA.unpackEncodedString(DFA160_eofS);
	static final char[] DFA160_min = DFA.unpackEncodedStringToUnsignedChars(DFA160_minS);
	static final char[] DFA160_max = DFA.unpackEncodedStringToUnsignedChars(DFA160_maxS);
	static final short[] DFA160_accept = DFA.unpackEncodedString(DFA160_acceptS);
	static final short[] DFA160_special = DFA.unpackEncodedString(DFA160_specialS);
	static final short[][] DFA160_transition;

	static {
		int numStates = DFA160_transitionS.length;
		DFA160_transition = new short[numStates][];
		for (int i=0; i<numStates; i++) {
			DFA160_transition[i] = DFA.unpackEncodedString(DFA160_transitionS[i]);
		}
	}

	protected class DFA160 extends DFA {

		public DFA160(BaseRecognizer recognizer) {
			this.recognizer = recognizer;
			this.decisionNumber = 160;
			this.eot = DFA160_eot;
			this.eof = DFA160_eof;
			this.min = DFA160_min;
			this.max = DFA160_max;
			this.accept = DFA160_accept;
			this.special = DFA160_special;
			this.transition = DFA160_transition;
		}
		@Override
		public String getDescription() {
			return "1527:103: ( tableRowFormatMapKeysIdentifier )?";
		}
	}

	public static final BitSet FOLLOW_explainStatement_in_statement925 = new BitSet(new long[]{0x0000000000000000L});
	public static final BitSet FOLLOW_EOF_in_statement927 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_execStatement_in_statement932 = new BitSet(new long[]{0x0000000000000000L});
	public static final BitSet FOLLOW_EOF_in_statement934 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_EXPLAIN_in_explainStatement955 = new BitSet(new long[]{0x0000030000000000L,0x08C00C0103800080L,0x0000082520002010L,0x0000020200820000L,0x0000000000008810L});
	public static final BitSet FOLLOW_KW_EXTENDED_in_explainStatement960 = new BitSet(new long[]{0x0000030000000000L,0x0880040103000080L,0x0000082120002010L,0x0000020200820000L,0x0000000000008810L});
	public static final BitSet FOLLOW_KW_FORMATTED_in_explainStatement964 = new BitSet(new long[]{0x0000030000000000L,0x0880040103000080L,0x0000082120002010L,0x0000020200820000L,0x0000000000008810L});
	public static final BitSet FOLLOW_KW_DEPENDENCY_in_explainStatement968 = new BitSet(new long[]{0x0000030000000000L,0x0880040103000080L,0x0000082120002010L,0x0000020200820000L,0x0000000000008810L});
	public static final BitSet FOLLOW_KW_LOGICAL_in_explainStatement972 = new BitSet(new long[]{0x0000030000000000L,0x0880040103000080L,0x0000082120002010L,0x0000020200820000L,0x0000000000008810L});
	public static final BitSet FOLLOW_execStatement_in_explainStatement976 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_queryStatementExpression_in_execStatement1018 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_loadStatement_in_execStatement1026 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_exportStatement_in_execStatement1034 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_importStatement_in_execStatement1042 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ddlStatement_in_execStatement1050 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LOAD_in_loadStatement1077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
	public static final BitSet FOLLOW_KW_DATA_in_loadStatement1079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000400L});
	public static final BitSet FOLLOW_KW_LOCAL_in_loadStatement1084 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
	public static final BitSet FOLLOW_KW_INPATH_in_loadStatement1088 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_loadStatement1093 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000020000L});
	public static final BitSet FOLLOW_KW_OVERWRITE_in_loadStatement1099 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
	public static final BitSet FOLLOW_KW_INTO_in_loadStatement1103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_loadStatement1105 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableOrPartition_in_loadStatement1110 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_EXPORT_in_exportStatement1162 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_exportStatement1164 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableOrPartition_in_exportStatement1169 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_KW_TO_in_exportStatement1172 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_exportStatement1177 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IMPORT_in_importStatement1218 = new BitSet(new long[]{0x0000000000000000L,0x0080100000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_EXTERNAL_in_importStatement1224 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_importStatement1228 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableOrPartition_in_importStatement1233 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
	public static final BitSet FOLLOW_KW_FROM_in_importStatement1238 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_importStatement1243 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableLocation_in_importStatement1246 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createDatabaseStatement_in_ddlStatement1298 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_switchDatabaseStatement_in_ddlStatement1306 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropDatabaseStatement_in_ddlStatement1314 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createTableStatement_in_ddlStatement1322 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropTableStatement_in_ddlStatement1330 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_truncateTableStatement_in_ddlStatement1338 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatement_in_ddlStatement1346 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_descStatement_in_ddlStatement1354 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_showStatement_in_ddlStatement1362 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_metastoreCheck_in_ddlStatement1370 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createViewStatement_in_ddlStatement1378 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropViewStatement_in_ddlStatement1386 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createFunctionStatement_in_ddlStatement1394 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createMacroStatement_in_ddlStatement1402 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createIndexStatement_in_ddlStatement1410 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropIndexStatement_in_ddlStatement1418 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropFunctionStatement_in_ddlStatement1426 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropMacroStatement_in_ddlStatement1434 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_analyzeStatement_in_ddlStatement1442 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_lockStatement_in_ddlStatement1450 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_unlockStatement_in_ddlStatement1458 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_createRoleStatement_in_ddlStatement1466 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_dropRoleStatement_in_ddlStatement1474 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_grantPrivileges_in_ddlStatement1482 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_revokePrivileges_in_ddlStatement1490 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_showGrants_in_ddlStatement1498 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_showRoleGrants_in_ddlStatement1506 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_grantRole_in_ddlStatement1514 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_revokeRole_in_ddlStatement1522 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IF_in_ifExists1549 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
	public static final BitSet FOLLOW_KW_EXISTS_in_ifExists1551 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_RESTRICT_in_restrictOrCascade1588 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CASCADE_in_restrictOrCascade1606 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IF_in_ifNotExists1643 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
	public static final BitSet FOLLOW_KW_NOT_in_ifNotExists1645 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
	public static final BitSet FOLLOW_KW_EXISTS_in_ifNotExists1647 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_storedAsDirs1684 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_storedAsDirs1686 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_DIRECTORIES_in_storedAsDirs1688 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_OR_in_orReplace1725 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
	public static final BitSet FOLLOW_KW_REPLACE_in_orReplace1727 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IGNORE_in_ignoreProtection1768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
	public static final BitSet FOLLOW_KW_PROTECTION_in_ignoreProtection1770 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createDatabaseStatement1815 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000040000000L});
	public static final BitSet FOLLOW_KW_DATABASE_in_createDatabaseStatement1818 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_SCHEMA_in_createDatabaseStatement1820 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifNotExists_in_createDatabaseStatement1831 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_createDatabaseStatement1844 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_databaseComment_in_createDatabaseStatement1854 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_dbLocation_in_createDatabaseStatement1865 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_WITH_in_createDatabaseStatement1877 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
	public static final BitSet FOLLOW_KW_DBPROPERTIES_in_createDatabaseStatement1879 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_dbProperties_in_createDatabaseStatement1883 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LOCATION_in_dbLocation1944 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_dbLocation1948 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_dbProperties1990 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_dbPropertiesList_in_dbProperties1992 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_dbProperties1994 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_keyValueProperty_in_dbPropertiesList2035 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_dbPropertiesList2038 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_keyValueProperty_in_dbPropertiesList2040 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_KW_USE_in_switchDatabaseStatement2079 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_switchDatabaseStatement2081 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropDatabaseStatement2120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000040000000L});
	public static final BitSet FOLLOW_KW_DATABASE_in_dropDatabaseStatement2123 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_SCHEMA_in_dropDatabaseStatement2125 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifExists_in_dropDatabaseStatement2128 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_dropDatabaseStatement2131 = new BitSet(new long[]{0x0100000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
	public static final BitSet FOLLOW_restrictOrCascade_in_dropDatabaseStatement2133 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COMMENT_in_databaseComment2179 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_databaseComment2183 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createTableStatement2223 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_EXTERNAL_in_createTableStatement2228 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_createTableStatement2232 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifNotExists_in_createTableStatement2234 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_createTableStatement2239 = new BitSet(new long[]{0x2000200000000002L,0x0000000000000004L,0x8000000084000000L,0x0102080010000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_KW_LIKE_in_createTableStatement2252 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_createTableStatement2256 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000080000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tableLocation_in_createTableStatement2267 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tablePropertiesPrefixed_in_createTableStatement2279 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_createTableStatement2292 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameTypeList_in_createTableStatement2294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_createTableStatement2296 = new BitSet(new long[]{0x2000200000000002L,0x0000000000000004L,0x8000000080000000L,0x0102080010000000L});
	public static final BitSet FOLLOW_tableComment_in_createTableStatement2309 = new BitSet(new long[]{0x2000200000000002L,0x0000000000000000L,0x8000000080000000L,0x0102080010000000L});
	public static final BitSet FOLLOW_tablePartition_in_createTableStatement2321 = new BitSet(new long[]{0x2000200000000002L,0x0000000000000000L,0x0000000080000000L,0x0102080010000000L});
	public static final BitSet FOLLOW_tableBuckets_in_createTableStatement2333 = new BitSet(new long[]{0x0000200000000002L,0x0000000000000000L,0x0000000080000000L,0x0102080010000000L});
	public static final BitSet FOLLOW_tableSkewed_in_createTableStatement2345 = new BitSet(new long[]{0x0000200000000002L,0x0000000000000000L,0x0000000080000000L,0x0102000010000000L});
	public static final BitSet FOLLOW_tableRowFormat_in_createTableStatement2357 = new BitSet(new long[]{0x0000200000000002L,0x0000000000000000L,0x0000000080000000L,0x0102000000000000L});
	public static final BitSet FOLLOW_tableFileFormat_in_createTableStatement2369 = new BitSet(new long[]{0x0000200000000002L,0x0000000000000000L,0x0000000080000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tableLocation_in_createTableStatement2381 = new BitSet(new long[]{0x0000200000000002L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tablePropertiesPrefixed_in_createTableStatement2393 = new BitSet(new long[]{0x0000200000000002L});
	public static final BitSet FOLLOW_KW_AS_in_createTableStatement2406 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000200020000L});
	public static final BitSet FOLLOW_selectStatement_in_createTableStatement2408 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_TRUNCATE_in_truncateTableStatement2611 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_truncateTableStatement2613 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tablePartitionPrefix_in_truncateTableStatement2615 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COLUMNS_in_truncateTableStatement2618 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_truncateTableStatement2620 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_truncateTableStatement2622 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_truncateTableStatement2624 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createIndexStatement2659 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
	public static final BitSet FOLLOW_KW_INDEX_in_createIndexStatement2661 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_createIndexStatement2665 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_ON_in_createIndexStatement2673 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_createIndexStatement2675 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_createIndexStatement2679 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_createIndexStatement2681 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_createIndexStatement2685 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_createIndexStatement2687 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_createIndexStatement2695 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_createIndexStatement2699 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000022L,0x0102000010000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_autoRebuild_in_createIndexStatement2707 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000022L,0x0102000010000000L});
	public static final BitSet FOLLOW_indexPropertiesPrefixed_in_createIndexStatement2716 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000020L,0x0102000010000000L});
	public static final BitSet FOLLOW_indexTblName_in_createIndexStatement2725 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000000L,0x0102000010000000L});
	public static final BitSet FOLLOW_tableRowFormat_in_createIndexStatement2734 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000000L,0x0102000000000000L});
	public static final BitSet FOLLOW_tableFileFormat_in_createIndexStatement2743 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000080000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tableLocation_in_createIndexStatement2752 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tablePropertiesPrefixed_in_createIndexStatement2761 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
	public static final BitSet FOLLOW_indexComment_in_createIndexStatement2770 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COMMENT_in_indexComment2927 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_indexComment2931 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_WITH_in_autoRebuild2972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
	public static final BitSet FOLLOW_KW_DEFERRED_in_autoRebuild2974 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
	public static final BitSet FOLLOW_KW_REBUILD_in_autoRebuild2976 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IN_in_indexTblName3012 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_indexTblName3014 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_indexTblName3018 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IDXPROPERTIES_in_indexPropertiesPrefixed3065 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_indexProperties_in_indexPropertiesPrefixed3068 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_indexProperties3101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_indexPropertiesList_in_indexProperties3103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_indexProperties3105 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_keyValueProperty_in_indexPropertiesList3146 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_indexPropertiesList3149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_keyValueProperty_in_indexPropertiesList3151 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropIndexStatement3189 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
	public static final BitSet FOLLOW_KW_INDEX_in_dropIndexStatement3191 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifExists_in_dropIndexStatement3193 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_dropIndexStatement3198 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_ON_in_dropIndexStatement3200 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_dropIndexStatement3204 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropTableStatement3249 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_dropTableStatement3251 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifExists_in_dropTableStatement3253 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_dropTableStatement3256 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ALTER_in_alterStatement3294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L,0x0000000000000080L,0x0020000000000000L,0x0000000000400000L});
	public static final BitSet FOLLOW_KW_TABLE_in_alterStatement3319 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_alterTableStatementSuffix_in_alterStatement3322 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_VIEW_in_alterStatement3346 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_alterViewStatementSuffix_in_alterStatement3349 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INDEX_in_alterStatement3373 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_alterIndexStatementSuffix_in_alterStatement3376 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DATABASE_in_alterStatement3400 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_alterDatabaseStatementSuffix_in_alterStatement3403 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixRename_in_alterTableStatementSuffix3440 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixAddCol_in_alterTableStatementSuffix3448 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixRenameCol_in_alterTableStatementSuffix3456 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixDropPartitions_in_alterTableStatementSuffix3464 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixAddPartitions_in_alterTableStatementSuffix3472 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixTouch_in_alterTableStatementSuffix3480 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixArchive_in_alterTableStatementSuffix3488 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixUnArchive_in_alterTableStatementSuffix3496 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixProperties_in_alterTableStatementSuffix3504 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterTblPartitionStatement_in_alterTableStatementSuffix3512 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixSkewedby_in_alterTableStatementSuffix3520 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixExchangePartition_in_alterTableStatementSuffix3528 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterViewSuffixProperties_in_alterViewStatementSuffix3555 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixRename_in_alterViewStatementSuffix3563 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixAddPartitions_in_alterViewStatementSuffix3587 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixDropPartitions_in_alterViewStatementSuffix3611 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_tableName_in_alterViewStatementSuffix3637 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_alterViewStatementSuffix3639 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000200020000L});
	public static final BitSet FOLLOW_selectStatement_in_alterViewStatementSuffix3641 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterIndexStatementSuffix3689 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_ON_in_alterIndexStatementSuffix3698 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_alterIndexStatementSuffix3702 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L,0x0000004000004000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterIndexStatementSuffix3711 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000004000L});
	public static final BitSet FOLLOW_KW_REBUILD_in_alterIndexStatementSuffix3726 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SET_in_alterIndexStatementSuffix3760 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
	public static final BitSet FOLLOW_KW_IDXPROPERTIES_in_alterIndexStatementSuffix3762 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_indexProperties_in_alterIndexStatementSuffix3770 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterDatabaseSuffixProperties_in_alterDatabaseStatementSuffix3822 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterDatabaseSuffixProperties3851 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
	public static final BitSet FOLLOW_KW_SET_in_alterDatabaseSuffixProperties3853 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
	public static final BitSet FOLLOW_KW_DBPROPERTIES_in_alterDatabaseSuffixProperties3855 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_dbProperties_in_alterDatabaseSuffixProperties3857 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixRename3901 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
	public static final BitSet FOLLOW_KW_RENAME_in_alterStatementSuffixRename3903 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_KW_TO_in_alterStatementSuffixRename3905 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixRename3909 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixAddCol3952 = new BitSet(new long[]{0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
	public static final BitSet FOLLOW_KW_ADD_in_alterStatementSuffixAddCol3957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
	public static final BitSet FOLLOW_KW_REPLACE_in_alterStatementSuffixAddCol3963 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COLUMNS_in_alterStatementSuffixAddCol3966 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_alterStatementSuffixAddCol3968 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameTypeList_in_alterStatementSuffixAddCol3970 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_alterStatementSuffixAddCol3972 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixRenameCol4045 = new BitSet(new long[]{0x0800000000000000L});
	public static final BitSet FOLLOW_KW_CHANGE_in_alterStatementSuffixRenameCol4047 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADFL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_COLUMN_in_alterStatementSuffixRenameCol4049 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixRenameCol4054 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixRenameCol4058 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_colType_in_alterStatementSuffixRenameCol4060 = new BitSet(new long[]{0x0000004000000002L,0x0002000000000004L});
	public static final BitSet FOLLOW_KW_COMMENT_in_alterStatementSuffixRenameCol4063 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_alterStatementSuffixRenameCol4067 = new BitSet(new long[]{0x0000004000000002L,0x0002000000000000L});
	public static final BitSet FOLLOW_alterStatementChangeColPosition_in_alterStatementSuffixRenameCol4071 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_FIRST_in_alterStatementChangeColPosition4117 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_AFTER_in_alterStatementChangeColPosition4119 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_alterStatementChangeColPosition4123 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixAddPartitions4175 = new BitSet(new long[]{0x0000002000000000L});
	public static final BitSet FOLLOW_KW_ADD_in_alterStatementSuffixAddPartitions4177 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000004L});
	public static final BitSet FOLLOW_ifNotExists_in_alterStatementSuffixAddPartitions4179 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_alterStatementSuffixAddPartitionsElement_in_alterStatementSuffixAddPartitions4182 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterStatementSuffixAddPartitionsElement4218 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_partitionLocation_in_alterStatementSuffixAddPartitionsElement4220 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixTouch4248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
	public static final BitSet FOLLOW_KW_TOUCH_in_alterStatementSuffixTouch4250 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterStatementSuffixTouch4253 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixArchive4299 = new BitSet(new long[]{0x0000080000000000L});
	public static final BitSet FOLLOW_KW_ARCHIVE_in_alterStatementSuffixArchive4301 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterStatementSuffixArchive4304 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixUnArchive4350 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
	public static final BitSet FOLLOW_KW_UNARCHIVE_in_alterStatementSuffixUnArchive4352 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterStatementSuffixUnArchive4355 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_KW_LOCATION_in_partitionLocation4407 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_partitionLocation4411 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixDropPartitions4447 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
	public static final BitSet FOLLOW_KW_DROP_in_alterStatementSuffixDropPartitions4449 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000004L});
	public static final BitSet FOLLOW_ifExists_in_alterStatementSuffixDropPartitions4451 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_dropPartitionSpec_in_alterStatementSuffixDropPartitions4454 = new BitSet(new long[]{0x0000000000001002L,0x0000000000000000L,0x0000000000000008L});
	public static final BitSet FOLLOW_COMMA_in_alterStatementSuffixDropPartitions4457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_dropPartitionSpec_in_alterStatementSuffixDropPartitions4459 = new BitSet(new long[]{0x0000000000001002L,0x0000000000000000L,0x0000000000000008L});
	public static final BitSet FOLLOW_ignoreProtection_in_alterStatementSuffixDropPartitions4463 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixProperties4514 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
	public static final BitSet FOLLOW_KW_SET_in_alterStatementSuffixProperties4516 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_KW_TBLPROPERTIES_in_alterStatementSuffixProperties4518 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_alterStatementSuffixProperties4520 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixProperties4545 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
	public static final BitSet FOLLOW_KW_UNSET_in_alterStatementSuffixProperties4547 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_KW_TBLPROPERTIES_in_alterStatementSuffixProperties4549 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_ifExists_in_alterStatementSuffixProperties4551 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_alterStatementSuffixProperties4554 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterViewSuffixProperties4601 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
	public static final BitSet FOLLOW_KW_SET_in_alterViewSuffixProperties4603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_KW_TBLPROPERTIES_in_alterViewSuffixProperties4605 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_alterViewSuffixProperties4607 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterViewSuffixProperties4632 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
	public static final BitSet FOLLOW_KW_UNSET_in_alterViewSuffixProperties4634 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_KW_TBLPROPERTIES_in_alterViewSuffixProperties4636 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_ifExists_in_alterViewSuffixProperties4638 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_alterViewSuffixProperties4641 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SET_in_alterStatementSuffixSerdeProperties4686 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
	public static final BitSet FOLLOW_KW_SERDE_in_alterStatementSuffixSerdeProperties4688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_alterStatementSuffixSerdeProperties4692 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_WITH_in_alterStatementSuffixSerdeProperties4695 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
	public static final BitSet FOLLOW_KW_SERDEPROPERTIES_in_alterStatementSuffixSerdeProperties4697 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_alterStatementSuffixSerdeProperties4699 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SET_in_alterStatementSuffixSerdeProperties4725 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
	public static final BitSet FOLLOW_KW_SERDEPROPERTIES_in_alterStatementSuffixSerdeProperties4727 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_alterStatementSuffixSerdeProperties4729 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_tablePartitionPrefix4767 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_tablePartitionPrefix4769 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_tablePartitionPrefix_in_alterTblPartitionStatement4806 = new BitSet(new long[]{0x2000000000000000L,0x0000000810000010L,0x0000200000020000L,0x0000004000080000L});
	public static final BitSet FOLLOW_alterTblPartitionStatementSuffix_in_alterTblPartitionStatement4808 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_Identifier_in_alterTblPartitionStatement4825 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_KW_PARTITION_in_alterTblPartitionStatement4827 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
	public static final BitSet FOLLOW_KW_COLUMN_in_alterTblPartitionStatement4829 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_alterTblPartitionStatement4831 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameType_in_alterTblPartitionStatement4833 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_alterTblPartitionStatement4835 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixFileFormat_in_alterTblPartitionStatementSuffix4870 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixLocation_in_alterTblPartitionStatementSuffix4876 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixProtectMode_in_alterTblPartitionStatementSuffix4882 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixMergeFiles_in_alterTblPartitionStatementSuffix4888 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixSerdeProperties_in_alterTblPartitionStatementSuffix4894 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixRenamePart_in_alterTblPartitionStatementSuffix4900 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixBucketNum_in_alterTblPartitionStatementSuffix4906 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterTblPartitionStatementSuffixSkewedLocation_in_alterTblPartitionStatementSuffix4912 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterStatementSuffixClusterbySortby_in_alterTblPartitionStatementSuffix4918 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SET_in_alterStatementSuffixFileFormat4940 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_KW_FILEFORMAT_in_alterStatementSuffixFileFormat4942 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_fileFormat_in_alterStatementSuffixFileFormat4944 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_NOT_in_alterStatementSuffixClusterbySortby4975 = new BitSet(new long[]{0x2000000000000000L});
	public static final BitSet FOLLOW_KW_CLUSTERED_in_alterStatementSuffixClusterbySortby4977 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_NOT_in_alterStatementSuffixClusterbySortby4991 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
	public static final BitSet FOLLOW_KW_SORTED_in_alterStatementSuffixClusterbySortby4993 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_tableBuckets_in_alterStatementSuffixClusterbySortby5007 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SET_in_alterTblPartitionStatementSuffixSkewedLocation5038 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_KW_SKEWED_in_alterTblPartitionStatementSuffixSkewedLocation5040 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_KW_LOCATION_in_alterTblPartitionStatementSuffixSkewedLocation5042 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_skewedLocations_in_alterTblPartitionStatementSuffixSkewedLocation5044 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_skewedLocations5087 = new BitSet(new long[]{0x0000000000408200L,0x0000200000008000L,0x0000000000000000L,0x0000000000000000L,0x0300080080000008L,0x0000000000000003L});
	public static final BitSet FOLLOW_skewedLocationsList_in_skewedLocations5089 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_skewedLocations5091 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_skewedLocationMap_in_skewedLocationsList5132 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_skewedLocationsList5135 = new BitSet(new long[]{0x0000000000408200L,0x0000200000008000L,0x0000000000000000L,0x0000000000000000L,0x0300080080000008L,0x0000000000000003L});
	public static final BitSet FOLLOW_skewedLocationMap_in_skewedLocationsList5137 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_skewedValueLocationElement_in_skewedLocationMap5183 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_EQUAL_in_skewedLocationMap5185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_skewedLocationMap5189 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SET_in_alterStatementSuffixLocation5226 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_KW_LOCATION_in_alterStatementSuffixLocation5228 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_alterStatementSuffixLocation5232 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixSkewedby5267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_tableSkewed_in_alterStatementSuffixSkewedby5269 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixSkewedby5288 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
	public static final BitSet FOLLOW_KW_NOT_in_alterStatementSuffixSkewedby5290 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_KW_SKEWED_in_alterStatementSuffixSkewedby5292 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_alterStatementSuffixSkewedby5309 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
	public static final BitSet FOLLOW_KW_NOT_in_alterStatementSuffixSkewedby5311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
	public static final BitSet FOLLOW_storedAsDirs_in_alterStatementSuffixSkewedby5313 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_tableName_in_alterStatementSuffixExchangePartition5349 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
	public static final BitSet FOLLOW_KW_EXCHANGE_in_alterStatementSuffixExchangePartition5351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterStatementSuffixExchangePartition5353 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_WITH_in_alterStatementSuffixExchangePartition5355 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_alterStatementSuffixExchangePartition5357 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_alterStatementSuffixExchangePartition5361 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_alterProtectMode_in_alterStatementSuffixProtectMode5406 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_RENAME_in_alterStatementSuffixRenamePart5445 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_KW_TO_in_alterStatementSuffixRenamePart5447 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_alterStatementSuffixRenamePart5449 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CONCATENATE_in_alterStatementSuffixMergeFiles5487 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ENABLE_in_alterProtectMode5524 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002400000000000L,0x0000000000001000L});
	public static final BitSet FOLLOW_alterProtectModeMode_in_alterProtectMode5526 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DISABLE_in_alterProtectMode5543 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002400000000000L,0x0000000000001000L});
	public static final BitSet FOLLOW_alterProtectModeMode_in_alterProtectMode5545 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_OFFLINE_in_alterProtectModeMode5581 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_NO_DROP_in_alterProtectModeMode5596 = new BitSet(new long[]{0x0100000000000002L});
	public static final BitSet FOLLOW_KW_CASCADE_in_alterProtectModeMode5598 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_READONLY_in_alterProtectModeMode5616 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INTO_in_alterStatementSuffixBucketNum5650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_Number_in_alterStatementSuffixBucketNum5654 = new BitSet(new long[]{0x0040000000000000L});
	public static final BitSet FOLLOW_KW_BUCKETS_in_alterStatementSuffixBucketNum5656 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SEQUENCEFILE_in_fileFormat5696 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_TEXTFILE_in_fileFormat5711 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_RCFILE_in_fileFormat5726 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ORCFILE_in_fileFormat5741 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INPUTFORMAT_in_fileFormat5755 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_fileFormat5759 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_OUTPUTFORMAT_in_fileFormat5761 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_fileFormat5765 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000800L});
	public static final BitSet FOLLOW_KW_INPUTDRIVER_in_fileFormat5768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_fileFormat5772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_OUTPUTDRIVER_in_fileFormat5774 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_fileFormat5778 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_fileFormat5816 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_tabTypeExpr5852 = new BitSet(new long[]{0x0000000000200002L});
	public static final BitSet FOLLOW_DOT_in_tabTypeExpr5855 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_ELEM_TYPE_in_tabTypeExpr5859 = new BitSet(new long[]{0x0000000000200002L});
	public static final BitSet FOLLOW_KW_KEY_TYPE_in_tabTypeExpr5863 = new BitSet(new long[]{0x0000000000200002L});
	public static final BitSet FOLLOW_KW_VALUE_TYPE_in_tabTypeExpr5867 = new BitSet(new long[]{0x0000000000200002L});
	public static final BitSet FOLLOW_identifier_in_tabTypeExpr5871 = new BitSet(new long[]{0x0000000000200002L});
	public static final BitSet FOLLOW_identifier_in_descTabTypeExpr5900 = new BitSet(new long[]{0xF9FFFB6200200002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_DOT_in_descTabTypeExpr5903 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_ELEM_TYPE_in_descTabTypeExpr5907 = new BitSet(new long[]{0xF9FFFB6200200002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_KEY_TYPE_in_descTabTypeExpr5911 = new BitSet(new long[]{0xF9FFFB6200200002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_VALUE_TYPE_in_descTabTypeExpr5915 = new BitSet(new long[]{0xF9FFFB6200200002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_descTabTypeExpr5919 = new BitSet(new long[]{0xF9FFFB6200200002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_descTabTypeExpr5924 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_tabTypeExpr_in_partTypeExpr5952 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_partTypeExpr5954 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_descTabTypeExpr_in_descPartTypeExpr5994 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_descPartTypeExpr5996 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DESCRIBE_in_descStatement6036 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77FFABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_DESC_in_descStatement6038 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77FFABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_FORMATTED_in_descStatement6044 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_EXTENDED_in_descStatement6048 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_PRETTY_in_descStatement6052 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_descPartTypeExpr_in_descStatement6059 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DESCRIBE_in_descStatement6082 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_DESC_in_descStatement6084 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_FUNCTION_in_descStatement6087 = new BitSet(new long[]{0xFBFFFF62630C0190L,0xBD77FFABDFFDDADEL,0xD7FBF9EFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x0A4022506ADFFBBDL});
	public static final BitSet FOLLOW_KW_EXTENDED_in_descStatement6089 = new BitSet(new long[]{0xFBFFFF62630C0190L,0xBD77F7ABDFFDDADEL,0xD7FBF9EFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x0A4022506ADFFBBDL});
	public static final BitSet FOLLOW_descFuncNames_in_descStatement6095 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DESCRIBE_in_descStatement6117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
	public static final BitSet FOLLOW_KW_DESC_in_descStatement6119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
	public static final BitSet FOLLOW_KW_DATABASE_in_descStatement6122 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77FFABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_EXTENDED_in_descStatement6124 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_descStatement6130 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ANALYZE_in_analyzeStatement6170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_analyzeStatement6172 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableOrPartition_in_analyzeStatement6177 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
	public static final BitSet FOLLOW_KW_COMPUTE_in_analyzeStatement6180 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_KW_STATISTICS_in_analyzeStatement6182 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L,0x2000100000000000L});
	public static final BitSet FOLLOW_KW_NOSCAN_in_analyzeStatement6188 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_PARTIALSCAN_in_analyzeStatement6196 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_FOR_in_analyzeStatement6202 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COLUMNS_in_analyzeStatement6204 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_analyzeStatement6208 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6259 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_KW_DATABASES_in_showStatement6262 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_SCHEMAS_in_showStatement6264 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_LIKE_in_showStatement6268 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_showStmtIdentifier_in_showStatement6270 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6289 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
	public static final BitSet FOLLOW_KW_TABLES_in_showStatement6291 = new BitSet(new long[]{0xF9FFFB6200000002L,0xBDF7F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_FROM_in_showStatement6295 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_IN_in_showStatement6297 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_showStatement6302 = new BitSet(new long[]{0xF9FFFB6200000002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_LIKE_in_showStatement6307 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_showStmtIdentifier_in_showStatement6309 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_showStmtIdentifier_in_showStatement6311 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6339 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COLUMNS_in_showStatement6341 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L,0x0000000000000020L});
	public static final BitSet FOLLOW_KW_FROM_in_showStatement6344 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_IN_in_showStatement6346 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_showStatement6351 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L,0x0000000000000020L});
	public static final BitSet FOLLOW_KW_FROM_in_showStatement6355 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_IN_in_showStatement6357 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_showStatement6362 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6390 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_FUNCTIONS_in_showStatement6392 = new BitSet(new long[]{0xF9FFFB6200000002L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_showStmtIdentifier_in_showStatement6394 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6413 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
	public static final BitSet FOLLOW_KW_PARTITIONS_in_showStatement6415 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_showStatement6417 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_showStatement6419 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6439 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
	public static final BitSet FOLLOW_KW_CREATE_in_showStatement6441 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_showStatement6443 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_showStatement6447 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6464 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_showStatement6466 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_KW_EXTENDED_in_showStatement6468 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L,0x0000000004000020L});
	public static final BitSet FOLLOW_KW_FROM_in_showStatement6472 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_IN_in_showStatement6474 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_showStatement6479 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_LIKE_in_showStatement6483 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_showStmtIdentifier_in_showStatement6485 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_showStatement6487 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6515 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_KW_TBLPROPERTIES_in_showStatement6517 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_showStatement6521 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_showStatement6524 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_showStatement6528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_showStatement6530 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6553 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
	public static final BitSet FOLLOW_KW_LOCKS_in_showStatement6555 = new BitSet(new long[]{0xF9FFFB6200000002L,0xBD77FFABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_partTypeExpr_in_showStatement6560 = new BitSet(new long[]{0x0000000000000002L,0x0000080000000000L});
	public static final BitSet FOLLOW_KW_EXTENDED_in_showStatement6567 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showStatement6591 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L,0x0000000000000180L});
	public static final BitSet FOLLOW_KW_FORMATTED_in_showStatement6596 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000180L});
	public static final BitSet FOLLOW_KW_INDEX_in_showStatement6601 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_INDEXES_in_showStatement6603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_ON_in_showStatement6606 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x020000000A5FFBBDL});
	public static final BitSet FOLLOW_showStmtIdentifier_in_showStatement6608 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L,0x0000000000000020L});
	public static final BitSet FOLLOW_KW_FROM_in_showStatement6612 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_IN_in_showStatement6614 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_showStatement6619 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LOCK_in_lockStatement6668 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_lockStatement6670 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_lockStatement6672 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L,0x4000000000000000L,0x0000010000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_lockStatement6674 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L,0x0000000000000000L,0x0000010000000000L});
	public static final BitSet FOLLOW_lockMode_in_lockStatement6677 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_UNLOCK_in_unlockStatement6748 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_unlockStatement6750 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_unlockStatement6752 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_unlockStatement6754 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createRoleStatement6794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_ROLE_in_createRoleStatement6796 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_createRoleStatement6800 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropRoleStatement6840 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_ROLE_in_dropRoleStatement6842 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_dropRoleStatement6846 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_GRANT_in_grantPrivileges6886 = new BitSet(new long[]{0x0000018000000000L,0x0000000100000080L,0x0000000100000080L,0x0000040200000000L,0x0000000000004000L});
	public static final BitSet FOLLOW_privilegeList_in_grantPrivileges6890 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_privilegeObject_in_grantPrivileges6898 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_KW_TO_in_grantPrivileges6907 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalSpecification_in_grantPrivileges6909 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_WITH_in_grantPrivileges6918 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
	public static final BitSet FOLLOW_withOption_in_grantPrivileges6920 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_REVOKE_in_revokePrivileges6970 = new BitSet(new long[]{0x0000018000000000L,0x0000000100000080L,0x0000000100000080L,0x0000040200000000L,0x0000000000004000L});
	public static final BitSet FOLLOW_privilegeList_in_revokePrivileges6972 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_privilegeObject_in_revokePrivileges6974 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
	public static final BitSet FOLLOW_KW_FROM_in_revokePrivileges6977 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalSpecification_in_revokePrivileges6979 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_GRANT_in_grantRole7023 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_ROLE_in_grantRole7025 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_grantRole7027 = new BitSet(new long[]{0x0000000000001000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_COMMA_in_grantRole7030 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_grantRole7032 = new BitSet(new long[]{0x0000000000001000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
	public static final BitSet FOLLOW_KW_TO_in_grantRole7036 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalSpecification_in_grantRole7038 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_REVOKE_in_revokeRole7080 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_ROLE_in_revokeRole7082 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_revokeRole7084 = new BitSet(new long[]{0x0000000000001000L,0x0080000000000000L});
	public static final BitSet FOLLOW_COMMA_in_revokeRole7087 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_revokeRole7089 = new BitSet(new long[]{0x0000000000001000L,0x0080000000000000L});
	public static final BitSet FOLLOW_KW_FROM_in_revokeRole7093 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalSpecification_in_revokeRole7095 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showRoleGrants7137 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_KW_ROLE_in_showRoleGrants7139 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
	public static final BitSet FOLLOW_KW_GRANT_in_showRoleGrants7141 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalName_in_showRoleGrants7143 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_in_showGrants7182 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
	public static final BitSet FOLLOW_KW_GRANT_in_showGrants7184 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalName_in_showGrants7186 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_privilegeIncludeColObject_in_showGrants7188 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ON_in_privilegeIncludeColObject7231 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_privilegeIncludeColObject7236 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_DATABASE_in_privilegeIncludeColObject7238 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_privilegeIncludeColObject7241 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_privilegeIncludeColObject7244 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_privilegeIncludeColObject7248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_privilegeIncludeColObject7250 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_privilegeIncludeColObject7254 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ON_in_privilegeObject7305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_privilegeObject7310 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_KW_DATABASE_in_privilegeObject7312 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_privilegeObject7315 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_privilegeObject7317 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_privlegeDef_in_privilegeList7364 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_privilegeList7367 = new BitSet(new long[]{0x0000018000000000L,0x0000000100000080L,0x0000000100000080L,0x0000040200000000L,0x0000000000004000L});
	public static final BitSet FOLLOW_privlegeDef_in_privilegeList7369 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_privilegeType_in_privlegeDef7411 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_privlegeDef7414 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_privlegeDef7418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_privlegeDef7420 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ALL_in_privilegeType7465 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ALTER_in_privilegeType7479 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_UPDATE_in_privilegeType7493 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_privilegeType7507 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_privilegeType7521 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INDEX_in_privilegeType7535 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LOCK_in_privilegeType7549 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SELECT_in_privilegeType7563 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SHOW_DATABASE_in_privilegeType7577 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_principalName_in_principalSpecification7610 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_principalSpecification7613 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000010000L});
	public static final BitSet FOLLOW_principalName_in_principalSpecification7615 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_KW_USER_in_principalName7653 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_principalName7655 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_GROUP_in_principalName7671 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_principalName7673 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ROLE_in_principalName7689 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_principalName7691 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_GRANT_in_withOption7726 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
	public static final BitSet FOLLOW_KW_OPTION_in_withOption7728 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_MSCK_in_metastoreCheck7765 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0020000000100000L});
	public static final BitSet FOLLOW_KW_REPAIR_in_metastoreCheck7770 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_metastoreCheck7775 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_metastoreCheck7779 = new BitSet(new long[]{0x0000000000001002L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_metastoreCheck7781 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_metastoreCheck7785 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
	public static final BitSet FOLLOW_partitionSpec_in_metastoreCheck7787 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createFunctionStatement7841 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_TEMPORARY_in_createFunctionStatement7843 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_FUNCTION_in_createFunctionStatement7845 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_createFunctionStatement7847 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_createFunctionStatement7849 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_createFunctionStatement7851 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropFunctionStatement7892 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_TEMPORARY_in_dropFunctionStatement7894 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_FUNCTION_in_dropFunctionStatement7896 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifExists_in_dropFunctionStatement7898 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_dropFunctionStatement7901 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createMacroStatement7943 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_TEMPORARY_in_createMacroStatement7945 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
	public static final BitSet FOLLOW_KW_MACRO_in_createMacroStatement7947 = new BitSet(new long[]{0x0000000200000000L});
	public static final BitSet FOLLOW_Identifier_in_createMacroStatement7949 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_createMacroStatement7957 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000100000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameTypeList_in_createMacroStatement7959 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_createMacroStatement7962 = new BitSet(new long[]{0xFFFFFB6200408200L,0xBD77F7ABDFFDDADEL,0xD7EBF9EFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x0B0028108A5FFBBDL,0x0000000000000003L});
	public static final BitSet FOLLOW_expression_in_createMacroStatement7964 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropMacroStatement8008 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_TEMPORARY_in_dropMacroStatement8010 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
	public static final BitSet FOLLOW_KW_MACRO_in_dropMacroStatement8012 = new BitSet(new long[]{0x0000000200000000L,0x0000000000000000L,0x0000000000000004L});
	public static final BitSet FOLLOW_ifExists_in_dropMacroStatement8014 = new BitSet(new long[]{0x0000000200000000L});
	public static final BitSet FOLLOW_Identifier_in_dropMacroStatement8017 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CREATE_in_createViewStatement8059 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L,0x0000000000000000L,0x0000000000400000L});
	public static final BitSet FOLLOW_orReplace_in_createViewStatement8062 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
	public static final BitSet FOLLOW_KW_VIEW_in_createViewStatement8066 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifNotExists_in_createViewStatement8069 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableName_in_createViewStatement8075 = new BitSet(new long[]{0x0000200000000000L,0x0000000000000004L,0x8000000000000000L,0x0100000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_createViewStatement8086 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameCommentList_in_createViewStatement8088 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_createViewStatement8090 = new BitSet(new long[]{0x0000200000000000L,0x0000000000000004L,0x8000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tableComment_in_createViewStatement8094 = new BitSet(new long[]{0x0000200000000000L,0x0000000000000000L,0x8000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_viewPartition_in_createViewStatement8097 = new BitSet(new long[]{0x0000200000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
	public static final BitSet FOLLOW_tablePropertiesPrefixed_in_createViewStatement8108 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_createViewStatement8119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000200020000L});
	public static final BitSet FOLLOW_selectStatement_in_createViewStatement8129 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_PARTITIONED_in_viewPartition8252 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_ON_in_viewPartition8254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_viewPartition8256 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_viewPartition8258 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_viewPartition8260 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DROP_in_dropViewStatement8299 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
	public static final BitSet FOLLOW_KW_VIEW_in_dropViewStatement8301 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFEL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_ifExists_in_dropViewStatement8303 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_viewName_in_dropViewStatement8306 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_showStmtIdentifier8344 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_StringLiteral_in_showStmtIdentifier8352 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COMMENT_in_tableComment8385 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableComment8389 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_PARTITIONED_in_tablePartition8426 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tablePartition8428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_tablePartition8430 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameTypeList_in_tablePartition8432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_tablePartition8434 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_CLUSTERED_in_tableBuckets8479 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableBuckets8481 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_tableBuckets8483 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_tableBuckets8487 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_tableBuckets8489 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L,0x0000400000000000L});
	public static final BitSet FOLLOW_KW_SORTED_in_tableBuckets8492 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableBuckets8494 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_tableBuckets8496 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameOrderList_in_tableBuckets8500 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_tableBuckets8502 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
	public static final BitSet FOLLOW_KW_INTO_in_tableBuckets8506 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_Number_in_tableBuckets8510 = new BitSet(new long[]{0x0040000000000000L});
	public static final BitSet FOLLOW_KW_BUCKETS_in_tableBuckets8512 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SKEWED_in_tableSkewed8564 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableSkewed8566 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_tableSkewed8568 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameList_in_tableSkewed8572 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_tableSkewed8574 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
	public static final BitSet FOLLOW_KW_ON_in_tableSkewed8576 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_tableSkewed8578 = new BitSet(new long[]{0x0000000000408200L,0x0000200000008000L,0x0000000000000000L,0x0000000000000000L,0x0300080080000008L,0x0000000000000003L});
	public static final BitSet FOLLOW_skewedValueElement_in_tableSkewed8583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_tableSkewed8586 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
	public static final BitSet FOLLOW_storedAsDirs_in_tableSkewed8589 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_rowFormatSerde_in_rowFormat8637 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_rowFormatDelimited_in_rowFormat8653 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_RECORDREADER_in_recordReader8702 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_recordReader8704 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_RECORDWRITER_in_recordWriter8753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_recordWriter8755 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ROW_in_rowFormatSerde8804 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_FORMAT_in_rowFormatSerde8806 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
	public static final BitSet FOLLOW_KW_SERDE_in_rowFormatSerde8808 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_rowFormatSerde8812 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_WITH_in_rowFormatSerde8815 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
	public static final BitSet FOLLOW_KW_SERDEPROPERTIES_in_rowFormatSerde8817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_rowFormatSerde8821 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ROW_in_rowFormatDelimited8873 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_FORMAT_in_rowFormatDelimited8875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
	public static final BitSet FOLLOW_KW_DELIMITED_in_rowFormatDelimited8877 = new BitSet(new long[]{0x8000000000000002L,0x0000800000000000L,0x0000002010000000L});
	public static final BitSet FOLLOW_tableRowFormatFieldIdentifier_in_rowFormatDelimited8879 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000000L,0x0000002010000000L});
	public static final BitSet FOLLOW_tableRowFormatCollItemsIdentifier_in_rowFormatDelimited8882 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000002010000000L});
	public static final BitSet FOLLOW_tableRowFormatMapKeysIdentifier_in_rowFormatDelimited8885 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000010000000L});
	public static final BitSet FOLLOW_tableRowFormatLinesIdentifier_in_rowFormatDelimited8888 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_rowFormatDelimited_in_tableRowFormat8944 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_rowFormatSerde_in_tableRowFormat8964 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_TBLPROPERTIES_in_tablePropertiesPrefixed9011 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_tablePropertiesPrefixed9014 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_tableProperties9047 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_tablePropertiesList_in_tableProperties9049 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_tableProperties9051 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_keyValueProperty_in_tablePropertiesList9092 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_tablePropertiesList9095 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_keyValueProperty_in_tablePropertiesList9097 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_keyProperty_in_tablePropertiesList9122 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_tablePropertiesList9125 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_keyProperty_in_tablePropertiesList9127 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_StringLiteral_in_keyValueProperty9173 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_EQUAL_in_keyValueProperty9175 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_keyValueProperty9179 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_StringLiteral_in_keyProperty9226 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_FIELDS_in_tableRowFormatFieldIdentifier9270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_TERMINATED_in_tableRowFormatFieldIdentifier9272 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableRowFormatFieldIdentifier9274 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableRowFormatFieldIdentifier9278 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
	public static final BitSet FOLLOW_KW_ESCAPED_in_tableRowFormatFieldIdentifier9281 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableRowFormatFieldIdentifier9283 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableRowFormatFieldIdentifier9287 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_COLLECTION_in_tableRowFormatCollItemsIdentifier9339 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
	public static final BitSet FOLLOW_KW_ITEMS_in_tableRowFormatCollItemsIdentifier9341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_TERMINATED_in_tableRowFormatCollItemsIdentifier9343 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableRowFormatCollItemsIdentifier9345 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableRowFormatCollItemsIdentifier9349 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_MAP_in_tableRowFormatMapKeysIdentifier9395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
	public static final BitSet FOLLOW_KW_KEYS_in_tableRowFormatMapKeysIdentifier9397 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_TERMINATED_in_tableRowFormatMapKeysIdentifier9399 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableRowFormatMapKeysIdentifier9401 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableRowFormatMapKeysIdentifier9405 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LINES_in_tableRowFormatLinesIdentifier9451 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_TERMINATED_in_tableRowFormatLinesIdentifier9453 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableRowFormatLinesIdentifier9455 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableRowFormatLinesIdentifier9459 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9505 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_tableFileFormat9507 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
	public static final BitSet FOLLOW_KW_SEQUENCEFILE_in_tableFileFormat9509 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9524 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_tableFileFormat9526 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
	public static final BitSet FOLLOW_KW_TEXTFILE_in_tableFileFormat9528 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9543 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_tableFileFormat9545 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
	public static final BitSet FOLLOW_KW_RCFILE_in_tableFileFormat9547 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9562 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_tableFileFormat9564 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_ORCFILE_in_tableFileFormat9566 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9580 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_tableFileFormat9582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
	public static final BitSet FOLLOW_KW_INPUTFORMAT_in_tableFileFormat9584 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableFileFormat9588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
	public static final BitSet FOLLOW_KW_OUTPUTFORMAT_in_tableFileFormat9590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableFileFormat9594 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000800L});
	public static final BitSet FOLLOW_KW_INPUTDRIVER_in_tableFileFormat9597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableFileFormat9601 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_KW_OUTPUTDRIVER_in_tableFileFormat9603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableFileFormat9607 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9645 = new BitSet(new long[]{0x0080000000000000L});
	public static final BitSet FOLLOW_KW_BY_in_tableFileFormat9647 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableFileFormat9651 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_WITH_in_tableFileFormat9663 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
	public static final BitSet FOLLOW_KW_SERDEPROPERTIES_in_tableFileFormat9665 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_tableProperties_in_tableFileFormat9669 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STORED_in_tableFileFormat9700 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_KW_AS_in_tableFileFormat9702 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_identifier_in_tableFileFormat9706 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LOCATION_in_tableLocation9754 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_tableLocation9758 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_columnNameType_in_columnNameTypeList9794 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_columnNameTypeList9797 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameType_in_columnNameTypeList9799 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_columnNameColonType_in_columnNameColonTypeList9837 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_columnNameColonTypeList9840 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameColonType_in_columnNameColonTypeList9842 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_columnName_in_columnNameList9880 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_columnNameList9883 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnName_in_columnNameList9885 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_identifier_in_columnName9929 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_columnNameOrder_in_columnNameOrderList9956 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_columnNameOrderList9959 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameOrder_in_columnNameOrderList9961 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_skewedColumnValues_in_skewedValueElement10006 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_skewedColumnValuePairList_in_skewedValueElement10015 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_skewedColumnValuePair_in_skewedColumnValuePairList10042 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_skewedColumnValuePairList10045 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_skewedColumnValuePair_in_skewedColumnValuePairList10047 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_LPAREN_in_skewedColumnValuePair10092 = new BitSet(new long[]{0x0000000000408200L,0x0000200000008000L,0x0000000000000000L,0x0000000000000000L,0x0300080000000008L,0x0000000000000003L});
	public static final BitSet FOLLOW_skewedColumnValues_in_skewedColumnValuePair10096 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_skewedColumnValuePair10098 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_skewedColumnValue_in_skewedColumnValues10141 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_skewedColumnValues10144 = new BitSet(new long[]{0x0000000000408200L,0x0000200000008000L,0x0000000000000000L,0x0000000000000000L,0x0300080000000008L,0x0000000000000003L});
	public static final BitSet FOLLOW_skewedColumnValue_in_skewedColumnValues10146 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_constant_in_skewedColumnValue10190 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_skewedColumnValue_in_skewedValueLocationElement10224 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_skewedColumnValuePair_in_skewedValueLocationElement10233 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_columnNameOrder10264 = new BitSet(new long[]{0x0000400000000002L,0x0000000001000000L});
	public static final BitSet FOLLOW_KW_ASC_in_columnNameOrder10269 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DESC_in_columnNameOrder10275 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_columnNameComment_in_columnNameCommentList10347 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_columnNameCommentList10350 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameComment_in_columnNameCommentList10352 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_identifier_in_columnNameComment10392 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
	public static final BitSet FOLLOW_KW_COMMENT_in_columnNameComment10395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_columnNameComment10399 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_expression_in_columnRefOrder10447 = new BitSet(new long[]{0x0000400000000002L,0x0000000001000000L});
	public static final BitSet FOLLOW_KW_ASC_in_columnRefOrder10452 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DESC_in_columnRefOrder10458 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_columnNameType10532 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_colType_in_columnNameType10534 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
	public static final BitSet FOLLOW_KW_COMMENT_in_columnNameType10537 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_columnNameType10541 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_identifier_in_columnNameColonType10627 = new BitSet(new long[]{0x0000000000000800L});
	public static final BitSet FOLLOW_COLON_in_columnNameColonType10629 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_colType_in_columnNameColonType10631 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
	public static final BitSet FOLLOW_KW_COMMENT_in_columnNameColonType10634 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_columnNameColonType10638 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_type_in_colType10722 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_colType_in_colTypeList10749 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_COMMA_in_colTypeList10752 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_colType_in_colTypeList10754 = new BitSet(new long[]{0x0000000000001002L});
	public static final BitSet FOLLOW_primitiveType_in_type10782 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_listType_in_type10790 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_structType_in_type10798 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_mapType_in_type10806 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_unionType_in_type10814 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_TINYINT_in_primitiveType10836 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_SMALLINT_in_primitiveType10857 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INT_in_primitiveType10877 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_BIGINT_in_primitiveType10902 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_BOOLEAN_in_primitiveType10924 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_FLOAT_in_primitiveType10945 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DOUBLE_in_primitiveType10968 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DATE_in_primitiveType10990 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DATETIME_in_primitiveType11014 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_TIMESTAMP_in_primitiveType11034 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STRING_in_primitiveType11053 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_BINARY_in_primitiveType11075 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DECIMAL_in_primitiveType11097 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_VARCHAR_in_primitiveType11118 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
	public static final BitSet FOLLOW_LPAREN_in_primitiveType11120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
	public static final BitSet FOLLOW_Number_in_primitiveType11124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
	public static final BitSet FOLLOW_RPAREN_in_primitiveType11126 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_ARRAY_in_listType11170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
	public static final BitSet FOLLOW_LESSTHAN_in_listType11172 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_type_in_listType11174 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_GREATERTHAN_in_listType11176 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_STRUCT_in_structType11213 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
	public static final BitSet FOLLOW_LESSTHAN_in_structType11215 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_columnNameColonTypeList_in_structType11217 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_GREATERTHAN_in_structType11219 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_MAP_in_mapType11254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
	public static final BitSet FOLLOW_LESSTHAN_in_mapType11256 = new BitSet(new long[]{0x000E000000000000L,0x0004000080098000L,0x0000000000004000L,0x6008100000000000L,0x0000000000200000L});
	public static final BitSet FOLLOW_primitiveType_in_mapType11260 = new BitSet(new long[]{0x0000000000001000L});
	public static final BitSet FOLLOW_COMMA_in_mapType11262 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_type_in_mapType11266 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_GREATERTHAN_in_mapType11268 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_UNIONTYPE_in_unionType11311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
	public static final BitSet FOLLOW_LESSTHAN_in_unionType11313 = new BitSet(new long[]{0x000E100000000000L,0x0004000080098000L,0x0000002000004000L,0x6018100000000000L,0x0000000000200200L});
	public static final BitSet FOLLOW_colTypeList_in_unionType11315 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_GREATERTHAN_in_unionType11317 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_UNION_in_queryOperator11352 = new BitSet(new long[]{0x0000008000000000L});
	public static final BitSet FOLLOW_KW_ALL_in_queryOperator11354 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_queryStatement_in_queryStatementExpression11378 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
	public static final BitSet FOLLOW_queryOperator_in_queryStatementExpression11381 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L,0x0000002000002000L,0x0000000200020000L});
	public static final BitSet FOLLOW_queryStatement_in_queryStatementExpression11384 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
	public static final BitSet FOLLOW_fromClause_in_queryStatement11407 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000002000L,0x0000000200020000L});
	public static final BitSet FOLLOW_body_in_queryStatement11417 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000002000002000L,0x0000000200020000L});
	public static final BitSet FOLLOW_regular_body_in_queryStatement11439 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_insertClause_in_regular_body11458 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000200020000L});
	public static final BitSet FOLLOW_selectClause_in_regular_body11463 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
	public static final BitSet FOLLOW_fromClause_in_regular_body11468 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000005000000L});
	public static final BitSet FOLLOW_whereClause_in_regular_body11473 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_groupByClause_in_regular_body11479 = new BitSet(new long[]{0x1000000000000002L,0x4000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_havingClause_in_regular_body11485 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_orderByClause_in_regular_body11491 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_clusterByClause_in_regular_body11497 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_distributeByClause_in_regular_body11503 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_sortByClause_in_regular_body11509 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_window_clause_in_regular_body11515 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_limitClause_in_regular_body11521 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_selectStatement_in_regular_body11617 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_selectClause_in_selectStatement11635 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
	public static final BitSet FOLLOW_fromClause_in_selectStatement11640 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000005000000L});
	public static final BitSet FOLLOW_whereClause_in_selectStatement11645 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_groupByClause_in_selectStatement11651 = new BitSet(new long[]{0x1000000000000002L,0x4000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_havingClause_in_selectStatement11657 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_orderByClause_in_selectStatement11663 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_clusterByClause_in_selectStatement11669 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_distributeByClause_in_selectStatement11675 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_sortByClause_in_selectStatement11681 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_window_clause_in_selectStatement11687 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_limitClause_in_selectStatement11693 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_insertClause_in_body11806 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000200020000L});
	public static final BitSet FOLLOW_selectClause_in_body11811 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008800000L,0x0000200000000000L,0x0000000005000000L});
	public static final BitSet FOLLOW_lateralView_in_body11816 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000005000000L});
	public static final BitSet FOLLOW_whereClause_in_body11822 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_groupByClause_in_body11828 = new BitSet(new long[]{0x1000000000000002L,0x4000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_havingClause_in_body11834 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_orderByClause_in_body11840 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_clusterByClause_in_body11846 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_distributeByClause_in_body11852 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_sortByClause_in_body11858 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_window_clause_in_body11864 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_limitClause_in_body11870 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_selectClause_in_body11963 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008800000L,0x0000200000000000L,0x0000000005000000L});
	public static final BitSet FOLLOW_lateralView_in_body11968 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000005000000L});
	public static final BitSet FOLLOW_whereClause_in_body11974 = new BitSet(new long[]{0x1000000000000002L,0x5000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_groupByClause_in_body11980 = new BitSet(new long[]{0x1000000000000002L,0x4000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_havingClause_in_body11986 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0040000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_orderByClause_in_body11992 = new BitSet(new long[]{0x1000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_clusterByClause_in_body11998 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_distributeByClause_in_body12004 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000200000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_sortByClause_in_body12010 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000004000000L});
	public static final BitSet FOLLOW_window_clause_in_body12016 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_limitClause_in_body12022 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INSERT_in_insertClause12143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});
	public static final BitSet FOLLOW_KW_OVERWRITE_in_insertClause12145 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L,0x0000000040000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_destination_in_insertClause12147 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000004L});
	public static final BitSet FOLLOW_ifNotExists_in_insertClause12149 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_INSERT_in_insertClause12168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
	public static final BitSet FOLLOW_KW_INTO_in_insertClause12170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
	public static final BitSet FOLLOW_KW_TABLE_in_insertClause12172 = new BitSet(new long[]{0xF9FFFB6200000000L,0xBD77F7ABDFFDDADEL,0xD7EBD9CFFDEEFFFAL,0xEF7FFFFCFFFDFFE7L,0x000000000A5FFBBDL});
	public static final BitSet FOLLOW_tableOrPartition_in_insertClause12174 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_LOCAL_in_destination12219 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
	public static final BitSet FOLLOW_KW_DIRECTORY_in_destination12221 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_destination12223 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0002000010000000L});
	public static final BitSet FOLLOW_tableRowFormat_in_destination12225 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
	public static final BitSet FOLLOW_tableFileFormat_in_destination12228 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_KW_DIRECTORY_in_destination12250 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
	public static final BitSet FOLLOW_StringLiteral_in_destination12252 = new BitSet(new long[]{0x0000000000000002L}