
oenix.phoenix-core.3.3.0.source-code.PhoenixSQLParser Maven / Gradle / Ivy
// $ANTLR 3.5 PhoenixSQL.g 2015-02-18 09:41:36
/**
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.phoenix.parse;
///CLOVER:OFF
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import org.apache.hadoop.hbase.util.Pair;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
import java.util.Stack;
import java.sql.SQLException;
import org.apache.phoenix.expression.function.CountAggregateFunction;
import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.IllegalDataException;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.PIndexState;
import org.apache.phoenix.schema.PTableType;
import org.apache.phoenix.schema.stats.StatisticsCollectionScope;
import org.apache.phoenix.util.SchemaUtil;
import org.apache.phoenix.parse.LikeParseNode.LikeType;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@SuppressWarnings("all")
public class PhoenixSQLParser extends Parser {
public static final String[] tokenNames = new String[] {
"", "", "", "", "ADD", "ALL", "ALTER", "AND",
"ANY", "ARRAY", "AS", "ASC", "ASTERISK", "AT", "BETWEEN", "BIND_NAME",
"BY", "CACHE", "CASCADE", "CASE", "CAST", "CHAR", "CHAR_ESC", "COLON",
"COLUMN", "COLUMNS", "COMMA", "COMMENT_AND_HINT_END", "COMMENT_START",
"CONCAT", "CONSTRAINT", "CREATE", "CURRENT", "CYCLE", "DBL_QUOTE_CHAR",
"DECIMAL", "DELETE", "DERIVE", "DESC", "DIGIT", "DISABLE", "DISTINCT",
"DIVIDE", "DOT", "DOUBLE", "DOUBLE_EQ", "DOUBLE_QUOTE", "DROP", "ELSE",
"END", "EOL", "EQ", "EXISTS", "EXPLAIN", "FALSE", "FIELDCHAR", "FIRST",
"FOR", "FROM", "FULL", "GROUP", "GT", "HAVING", "HINT_START", "IF", "ILIKE",
"IN", "INCLUDE", "INCREMENT", "INDEX", "INNER", "INTO", "IS", "JOIN",
"KEY", "LAST", "LCURLY", "LEFT", "LETTER", "LIKE", "LIMIT", "LONG", "LPAREN",
"LSQUARE", "LT", "MAXVALUE", "MINUS", "MINVALUE", "ML_COMMENT", "ML_HINT",
"NAME", "NEXT", "NOEQ1", "NOEQ2", "NOT", "NULL", "NULLS", "NUMBER", "ON",
"OR", "ORDER", "OTHER", "OUTER", "OUTER_JOIN", "PERCENT", "PLUS", "POSINTEGER",
"PRIMARY", "QUESTION", "RCURLY", "REBUILD", "RIGHT", "RPAREN", "RSQUARE",
"SELECT", "SEMICOLON", "SEQUENCE", "SET", "SL_COMMENT", "SL_COMMENT1",
"SL_COMMENT2", "SOME", "SPLIT", "START", "STATISTICS", "STRING_LITERAL",
"TABLE", "TABLES", "THEN", "TILDE", "TRUE", "UNUSABLE", "UPDATE", "UPSERT",
"USABLE", "VALUE", "VALUES", "VIEW", "WHEN", "WHERE", "WITH", "WITHIN",
"WS"
};
public static final int EOF=-1;
public static final int ADD=4;
public static final int ALL=5;
public static final int ALTER=6;
public static final int AND=7;
public static final int ANY=8;
public static final int ARRAY=9;
public static final int AS=10;
public static final int ASC=11;
public static final int ASTERISK=12;
public static final int AT=13;
public static final int BETWEEN=14;
public static final int BIND_NAME=15;
public static final int BY=16;
public static final int CACHE=17;
public static final int CASCADE=18;
public static final int CASE=19;
public static final int CAST=20;
public static final int CHAR=21;
public static final int CHAR_ESC=22;
public static final int COLON=23;
public static final int COLUMN=24;
public static final int COLUMNS=25;
public static final int COMMA=26;
public static final int COMMENT_AND_HINT_END=27;
public static final int COMMENT_START=28;
public static final int CONCAT=29;
public static final int CONSTRAINT=30;
public static final int CREATE=31;
public static final int CURRENT=32;
public static final int CYCLE=33;
public static final int DBL_QUOTE_CHAR=34;
public static final int DECIMAL=35;
public static final int DELETE=36;
public static final int DERIVE=37;
public static final int DESC=38;
public static final int DIGIT=39;
public static final int DISABLE=40;
public static final int DISTINCT=41;
public static final int DIVIDE=42;
public static final int DOT=43;
public static final int DOUBLE=44;
public static final int DOUBLE_EQ=45;
public static final int DOUBLE_QUOTE=46;
public static final int DROP=47;
public static final int ELSE=48;
public static final int END=49;
public static final int EOL=50;
public static final int EQ=51;
public static final int EXISTS=52;
public static final int EXPLAIN=53;
public static final int FALSE=54;
public static final int FIELDCHAR=55;
public static final int FIRST=56;
public static final int FOR=57;
public static final int FROM=58;
public static final int FULL=59;
public static final int GROUP=60;
public static final int GT=61;
public static final int HAVING=62;
public static final int HINT_START=63;
public static final int IF=64;
public static final int ILIKE=65;
public static final int IN=66;
public static final int INCLUDE=67;
public static final int INCREMENT=68;
public static final int INDEX=69;
public static final int INNER=70;
public static final int INTO=71;
public static final int IS=72;
public static final int JOIN=73;
public static final int KEY=74;
public static final int LAST=75;
public static final int LCURLY=76;
public static final int LEFT=77;
public static final int LETTER=78;
public static final int LIKE=79;
public static final int LIMIT=80;
public static final int LONG=81;
public static final int LPAREN=82;
public static final int LSQUARE=83;
public static final int LT=84;
public static final int MAXVALUE=85;
public static final int MINUS=86;
public static final int MINVALUE=87;
public static final int ML_COMMENT=88;
public static final int ML_HINT=89;
public static final int NAME=90;
public static final int NEXT=91;
public static final int NOEQ1=92;
public static final int NOEQ2=93;
public static final int NOT=94;
public static final int NULL=95;
public static final int NULLS=96;
public static final int NUMBER=97;
public static final int ON=98;
public static final int OR=99;
public static final int ORDER=100;
public static final int OTHER=101;
public static final int OUTER=102;
public static final int OUTER_JOIN=103;
public static final int PERCENT=104;
public static final int PLUS=105;
public static final int POSINTEGER=106;
public static final int PRIMARY=107;
public static final int QUESTION=108;
public static final int RCURLY=109;
public static final int REBUILD=110;
public static final int RIGHT=111;
public static final int RPAREN=112;
public static final int RSQUARE=113;
public static final int SELECT=114;
public static final int SEMICOLON=115;
public static final int SEQUENCE=116;
public static final int SET=117;
public static final int SL_COMMENT=118;
public static final int SL_COMMENT1=119;
public static final int SL_COMMENT2=120;
public static final int SOME=121;
public static final int SPLIT=122;
public static final int START=123;
public static final int STATISTICS=124;
public static final int STRING_LITERAL=125;
public static final int TABLE=126;
public static final int TABLES=127;
public static final int THEN=128;
public static final int TILDE=129;
public static final int TRUE=130;
public static final int UNUSABLE=131;
public static final int UPDATE=132;
public static final int UPSERT=133;
public static final int USABLE=134;
public static final int VALUE=135;
public static final int VALUES=136;
public static final int VIEW=137;
public static final int WHEN=138;
public static final int WHERE=139;
public static final int WITH=140;
public static final int WITHIN=141;
public static final int WS=142;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public PhoenixSQLParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public PhoenixSQLParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
@Override public String[] getTokenNames() { return PhoenixSQLParser.tokenNames; }
@Override public String getGrammarFileName() { return "PhoenixSQL.g"; }
/**
* used to turn '?' binds into : binds.
*/
private int anonBindNum;
private ParseNodeFactory factory;
private ParseContext.Stack contextStack = new ParseContext.Stack();
public void setParseNodeFactory(ParseNodeFactory factory) {
this.factory = factory;
}
public boolean isCountFunction(String field) {
return CountAggregateFunction.NORMALIZED_NAME.equals(SchemaUtil.normalizeIdentifier(field));
}
public int line(Token t) {
return t.getLine();
}
public int column(Token t) {
return t.getCharPositionInLine() + 1;
}
private void throwRecognitionException(Token t) throws RecognitionException {
RecognitionException e = new RecognitionException();
e.token = t;
e.line = t.getLine();
e.charPositionInLine = t.getCharPositionInLine();
e.input = input;
throw e;
}
public int getBindCount() {
return anonBindNum;
}
public void resetBindCount() {
anonBindNum = 0;
}
public String nextBind() {
return Integer.toString(++anonBindNum);
}
public void updateBind(String namedBind){
int nBind = Integer.parseInt(namedBind);
if (nBind > anonBindNum) {
anonBindNum = nBind;
}
}
protected Object recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow)
throws RecognitionException {
RecognitionException e = null;
// if next token is what we are looking for then "delete" this token
if (mismatchIsUnwantedToken(input, ttype)) {
e = new UnwantedTokenException(ttype, input);
} else if (mismatchIsMissingToken(input, follow)) {
Object inserted = getMissingSymbol(input, e, ttype, follow);
e = new MissingTokenException(ttype, input, inserted);
} else {
e = new MismatchedTokenException(ttype, input);
}
throw e;
}
public Object recoverFromMismatchedSet(IntStream input, RecognitionException e, BitSet follow)
throws RecognitionException
{
throw e;
}
@Override
public String getErrorMessage(RecognitionException e, String[] tokenNames) {
if (e instanceof MismatchedTokenException) {
MismatchedTokenException mte = (MismatchedTokenException)e;
String txt = mte.token.getText();
String p = mte.token.getType() == -1 ? "EOF" : PARAPHRASE[mte.token.getType()];
String expecting = (mte.expecting < PARAPHRASE.length && mte.expecting >= 0) ? PARAPHRASE[mte.expecting] : null;
if (expecting == null) {
return "unexpected token (" + line(mte.token) + "," + column(mte.token) + "): " + (txt != null ? txt : p);
} else {
return "expecting " + expecting +
", found '" + (txt != null ? txt : p) + "'";
}
} else if (e instanceof NoViableAltException) {
//NoViableAltException nvae = (NoViableAltException)e;
return "unexpected token: (" + line(e.token) + "," + column(e.token) + ")" + getTokenErrorDisplay(e.token);
}
return super.getErrorMessage(e, tokenNames);
}
public String getTokenErrorDisplay(int t) {
String ret = PARAPHRASE[t];
if (ret == null) ret = "";
return ret;
}
private String[] PARAPHRASE = new String[getTokenNames().length];
{
PARAPHRASE[NAME] = "a field or entity name";
PARAPHRASE[NUMBER] = "a number";
PARAPHRASE[EQ] = "an equals sign";
PARAPHRASE[LT] = "a left angle bracket";
PARAPHRASE[GT] = "a right angle bracket";
PARAPHRASE[COMMA] = "a comma";
PARAPHRASE[LPAREN] = "a left parentheses";
PARAPHRASE[RPAREN] = "a right parentheses";
PARAPHRASE[SEMICOLON] = "a semi-colon";
PARAPHRASE[COLON] = "a colon";
PARAPHRASE[LSQUARE] = "left square bracket";
PARAPHRASE[RSQUARE] = "right square bracket";
PARAPHRASE[LCURLY] = "left curly bracket";
PARAPHRASE[RCURLY] = "right curly bracket";
PARAPHRASE[AT] = "at";
PARAPHRASE[MINUS] = "a subtraction";
PARAPHRASE[TILDE] = "a tilde";
PARAPHRASE[PLUS] = "an addition";
PARAPHRASE[ASTERISK] = "an asterisk";
PARAPHRASE[DIVIDE] = "a division";
PARAPHRASE[FIELDCHAR] = "a field character";
PARAPHRASE[LETTER] = "an ansi letter";
PARAPHRASE[POSINTEGER] = "a positive integer";
PARAPHRASE[DIGIT] = "a number from 0 to 9";
}
// $ANTLR start "nextStatement"
// PhoenixSQL.g:330:1: nextStatement returns [BindableStatement ret] : (s= oneStatement SEMICOLON | EOF );
public final BindableStatement nextStatement() throws RecognitionException {
BindableStatement ret = null;
BindableStatement s =null;
try {
// PhoenixSQL.g:331:5: (s= oneStatement SEMICOLON | EOF )
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==ALTER||LA1_0==CREATE||LA1_0==DELETE||LA1_0==DROP||LA1_0==EXPLAIN||LA1_0==SELECT||(LA1_0 >= UPDATE && LA1_0 <= UPSERT)) ) {
alt1=1;
}
else if ( (LA1_0==EOF) ) {
alt1=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// PhoenixSQL.g:331:8: s= oneStatement SEMICOLON
{
pushFollow(FOLLOW_oneStatement_in_nextStatement876);
s=oneStatement();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = s;}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_nextStatement880); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:332:8: EOF
{
match(input,EOF,FOLLOW_EOF_in_nextStatement889); if (state.failed) return ret;
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "nextStatement"
// $ANTLR start "statement"
// PhoenixSQL.g:336:1: statement returns [BindableStatement ret] : s= oneStatement EOF ;
public final BindableStatement statement() throws RecognitionException {
BindableStatement ret = null;
BindableStatement s =null;
try {
// PhoenixSQL.g:337:5: (s= oneStatement EOF )
// PhoenixSQL.g:337:9: s= oneStatement EOF
{
pushFollow(FOLLOW_oneStatement_in_statement915);
s=oneStatement();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = s;}
match(input,EOF,FOLLOW_EOF_in_statement919); if (state.failed) return ret;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "statement"
// $ANTLR start "query"
// PhoenixSQL.g:341:1: query returns [SelectStatement ret] : SELECT s= hinted_select_node EOF ;
public final SelectStatement query() throws RecognitionException {
SelectStatement ret = null;
SelectStatement s =null;
try {
// PhoenixSQL.g:342:5: ( SELECT s= hinted_select_node EOF )
// PhoenixSQL.g:342:9: SELECT s= hinted_select_node EOF
{
match(input,SELECT,FOLLOW_SELECT_in_query943); if (state.failed) return ret;
pushFollow(FOLLOW_hinted_select_node_in_query947);
s=hinted_select_node();
state._fsp--;
if (state.failed) return ret;
match(input,EOF,FOLLOW_EOF_in_query949); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret =s;}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "query"
// $ANTLR start "oneStatement"
// PhoenixSQL.g:346:1: oneStatement returns [BindableStatement ret] : ( SELECT s= hinted_select_node |ns= non_select_node ) ;
public final BindableStatement oneStatement() throws RecognitionException {
BindableStatement ret = null;
SelectStatement s =null;
BindableStatement ns =null;
try {
// PhoenixSQL.g:347:5: ( ( SELECT s= hinted_select_node |ns= non_select_node ) )
// PhoenixSQL.g:347:9: ( SELECT s= hinted_select_node |ns= non_select_node )
{
// PhoenixSQL.g:347:9: ( SELECT s= hinted_select_node |ns= non_select_node )
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==SELECT) ) {
alt2=1;
}
else if ( (LA2_0==ALTER||LA2_0==CREATE||LA2_0==DELETE||LA2_0==DROP||LA2_0==EXPLAIN||(LA2_0 >= UPDATE && LA2_0 <= UPSERT)) ) {
alt2=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// PhoenixSQL.g:347:10: SELECT s= hinted_select_node
{
match(input,SELECT,FOLLOW_SELECT_in_oneStatement976); if (state.failed) return ret;
pushFollow(FOLLOW_hinted_select_node_in_oneStatement980);
s=hinted_select_node();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret =s;}
}
break;
case 2 :
// PhoenixSQL.g:348:10: ns= non_select_node
{
pushFollow(FOLLOW_non_select_node_in_oneStatement996);
ns=non_select_node();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret =ns;}
}
break;
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "oneStatement"
// $ANTLR start "non_select_node"
// PhoenixSQL.g:352:1: non_select_node returns [BindableStatement ret] : (s= upsert_node |s= delete_node |s= create_table_node |s= create_view_node |s= create_index_node |s= drop_table_node |s= drop_index_node |s= alter_index_node |s= alter_table_node |s= create_sequence_node |s= drop_sequence_node |s= update_statistics_node |s= explain_node ) ;
public final BindableStatement non_select_node() throws RecognitionException {
BindableStatement ret = null;
BindableStatement s =null;
contextStack.push(new ParseContext());
try {
// PhoenixSQL.g:354:5: ( (s= upsert_node |s= delete_node |s= create_table_node |s= create_view_node |s= create_index_node |s= drop_table_node |s= drop_index_node |s= alter_index_node |s= alter_table_node |s= create_sequence_node |s= drop_sequence_node |s= update_statistics_node |s= explain_node ) )
// PhoenixSQL.g:354:8: (s= upsert_node |s= delete_node |s= create_table_node |s= create_view_node |s= create_index_node |s= drop_table_node |s= drop_index_node |s= alter_index_node |s= alter_table_node |s= create_sequence_node |s= drop_sequence_node |s= update_statistics_node |s= explain_node )
{
// PhoenixSQL.g:354:8: (s= upsert_node |s= delete_node |s= create_table_node |s= create_view_node |s= create_index_node |s= drop_table_node |s= drop_index_node |s= alter_index_node |s= alter_table_node |s= create_sequence_node |s= drop_sequence_node |s= update_statistics_node |s= explain_node )
int alt3=13;
switch ( input.LA(1) ) {
case UPSERT:
{
alt3=1;
}
break;
case DELETE:
{
alt3=2;
}
break;
case CREATE:
{
switch ( input.LA(2) ) {
case TABLE:
{
alt3=3;
}
break;
case VIEW:
{
alt3=4;
}
break;
case INDEX:
{
alt3=5;
}
break;
case SEQUENCE:
{
alt3=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 3, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DROP:
{
switch ( input.LA(2) ) {
case INDEX:
{
alt3=7;
}
break;
case SEQUENCE:
{
alt3=11;
}
break;
case TABLE:
case VIEW:
{
alt3=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 3, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALTER:
{
int LA3_5 = input.LA(2);
if ( (LA3_5==INDEX) ) {
alt3=8;
}
else if ( (LA3_5==TABLE||LA3_5==VIEW) ) {
alt3=9;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 3, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case UPDATE:
{
alt3=12;
}
break;
case EXPLAIN:
{
alt3=13;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
// PhoenixSQL.g:354:9: s= upsert_node
{
pushFollow(FOLLOW_upsert_node_in_non_select_node1037);
s=upsert_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:355:9: s= delete_node
{
pushFollow(FOLLOW_delete_node_in_non_select_node1049);
s=delete_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 3 :
// PhoenixSQL.g:356:9: s= create_table_node
{
pushFollow(FOLLOW_create_table_node_in_non_select_node1061);
s=create_table_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 4 :
// PhoenixSQL.g:357:9: s= create_view_node
{
pushFollow(FOLLOW_create_view_node_in_non_select_node1073);
s=create_view_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 5 :
// PhoenixSQL.g:358:9: s= create_index_node
{
pushFollow(FOLLOW_create_index_node_in_non_select_node1085);
s=create_index_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 6 :
// PhoenixSQL.g:359:9: s= drop_table_node
{
pushFollow(FOLLOW_drop_table_node_in_non_select_node1097);
s=drop_table_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 7 :
// PhoenixSQL.g:360:9: s= drop_index_node
{
pushFollow(FOLLOW_drop_index_node_in_non_select_node1109);
s=drop_index_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 8 :
// PhoenixSQL.g:361:9: s= alter_index_node
{
pushFollow(FOLLOW_alter_index_node_in_non_select_node1121);
s=alter_index_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 9 :
// PhoenixSQL.g:362:9: s= alter_table_node
{
pushFollow(FOLLOW_alter_table_node_in_non_select_node1133);
s=alter_table_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 10 :
// PhoenixSQL.g:363:7: s= create_sequence_node
{
pushFollow(FOLLOW_create_sequence_node_in_non_select_node1143);
s=create_sequence_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 11 :
// PhoenixSQL.g:364:7: s= drop_sequence_node
{
pushFollow(FOLLOW_drop_sequence_node_in_non_select_node1153);
s=drop_sequence_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 12 :
// PhoenixSQL.g:365:9: s= update_statistics_node
{
pushFollow(FOLLOW_update_statistics_node_in_non_select_node1165);
s=update_statistics_node();
state._fsp--;
if (state.failed) return ret;
}
break;
case 13 :
// PhoenixSQL.g:366:9: s= explain_node
{
pushFollow(FOLLOW_explain_node_in_non_select_node1177);
s=explain_node();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = s; }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
contextStack.pop();
}
return ret;
}
// $ANTLR end "non_select_node"
// $ANTLR start "explain_node"
// PhoenixSQL.g:370:1: explain_node returns [BindableStatement ret] : EXPLAIN q= oneStatement ;
public final BindableStatement explain_node() throws RecognitionException {
BindableStatement ret = null;
BindableStatement q =null;
try {
// PhoenixSQL.g:371:5: ( EXPLAIN q= oneStatement )
// PhoenixSQL.g:371:9: EXPLAIN q= oneStatement
{
match(input,EXPLAIN,FOLLOW_EXPLAIN_in_explain_node1210); if (state.failed) return ret;
pushFollow(FOLLOW_oneStatement_in_explain_node1214);
q=oneStatement();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret =factory.explain(q);}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "explain_node"
// $ANTLR start "create_table_node"
// PhoenixSQL.g:375:1: create_table_node returns [CreateTableStatement ret] : CREATE TABLE ( IF NOT ex= EXISTS )? t= from_table_name ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN ) (p= fam_properties )? ( SPLIT ON s= value_expression_list )? ;
public final CreateTableStatement create_table_node() throws RecognitionException {
CreateTableStatement ret = null;
Token ex=null;
TableName t =null;
List c =null;
PrimaryKeyConstraint pk =null;
ListMultimap> p =null;
List s =null;
try {
// PhoenixSQL.g:376:5: ( CREATE TABLE ( IF NOT ex= EXISTS )? t= from_table_name ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN ) (p= fam_properties )? ( SPLIT ON s= value_expression_list )? )
// PhoenixSQL.g:376:9: CREATE TABLE ( IF NOT ex= EXISTS )? t= from_table_name ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN ) (p= fam_properties )? ( SPLIT ON s= value_expression_list )?
{
match(input,CREATE,FOLLOW_CREATE_in_create_table_node1240); if (state.failed) return ret;
match(input,TABLE,FOLLOW_TABLE_in_create_table_node1242); if (state.failed) return ret;
// PhoenixSQL.g:376:22: ( IF NOT ex= EXISTS )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==IF) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// PhoenixSQL.g:376:23: IF NOT ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_create_table_node1245); if (state.failed) return ret;
match(input,NOT,FOLLOW_NOT_in_create_table_node1247); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_create_table_node1251); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_from_table_name_in_create_table_node1257);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:377:9: ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN )
// PhoenixSQL.g:377:10: LPAREN c= column_defs (pk= pk_constraint )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_create_table_node1269); if (state.failed) return ret;
pushFollow(FOLLOW_column_defs_in_create_table_node1273);
c=column_defs();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:377:31: (pk= pk_constraint )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==COMMA||LA5_0==CONSTRAINT) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// PhoenixSQL.g:377:32: pk= pk_constraint
{
pushFollow(FOLLOW_pk_constraint_in_create_table_node1278);
pk=pk_constraint();
state._fsp--;
if (state.failed) return ret;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_create_table_node1282); if (state.failed) return ret;
}
// PhoenixSQL.g:378:9: (p= fam_properties )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==NAME) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// PhoenixSQL.g:378:10: p= fam_properties
{
pushFollow(FOLLOW_fam_properties_in_create_table_node1296);
p=fam_properties();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:379:9: ( SPLIT ON s= value_expression_list )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==SPLIT) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// PhoenixSQL.g:379:10: SPLIT ON s= value_expression_list
{
match(input,SPLIT,FOLLOW_SPLIT_in_create_table_node1309); if (state.failed) return ret;
match(input,ON,FOLLOW_ON_in_create_table_node1311); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_list_in_create_table_node1315);
s=value_expression_list();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.createTable(t, p, c, pk, s, PTableType.TABLE, ex!=null, null, null, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "create_table_node"
// $ANTLR start "create_view_node"
// PhoenixSQL.g:384:1: create_view_node returns [CreateTableStatement ret] : CREATE VIEW ( IF NOT ex= EXISTS )? t= from_table_name ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN )? ( AS SELECT ASTERISK FROM bt= from_table_name ( WHERE w= expression )? )? (p= fam_properties )? ;
public final CreateTableStatement create_view_node() throws RecognitionException {
CreateTableStatement ret = null;
Token ex=null;
TableName t =null;
List c =null;
PrimaryKeyConstraint pk =null;
TableName bt =null;
ParseNode w =null;
ListMultimap> p =null;
try {
// PhoenixSQL.g:385:5: ( CREATE VIEW ( IF NOT ex= EXISTS )? t= from_table_name ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN )? ( AS SELECT ASTERISK FROM bt= from_table_name ( WHERE w= expression )? )? (p= fam_properties )? )
// PhoenixSQL.g:385:9: CREATE VIEW ( IF NOT ex= EXISTS )? t= from_table_name ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN )? ( AS SELECT ASTERISK FROM bt= from_table_name ( WHERE w= expression )? )? (p= fam_properties )?
{
match(input,CREATE,FOLLOW_CREATE_in_create_view_node1351); if (state.failed) return ret;
match(input,VIEW,FOLLOW_VIEW_in_create_view_node1353); if (state.failed) return ret;
// PhoenixSQL.g:385:21: ( IF NOT ex= EXISTS )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==IF) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// PhoenixSQL.g:385:22: IF NOT ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_create_view_node1356); if (state.failed) return ret;
match(input,NOT,FOLLOW_NOT_in_create_view_node1358); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_create_view_node1362); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_from_table_name_in_create_view_node1368);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:386:9: ( LPAREN c= column_defs (pk= pk_constraint )? RPAREN )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==LPAREN) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// PhoenixSQL.g:386:10: LPAREN c= column_defs (pk= pk_constraint )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_create_view_node1380); if (state.failed) return ret;
pushFollow(FOLLOW_column_defs_in_create_view_node1384);
c=column_defs();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:386:31: (pk= pk_constraint )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==COMMA||LA9_0==CONSTRAINT) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// PhoenixSQL.g:386:32: pk= pk_constraint
{
pushFollow(FOLLOW_pk_constraint_in_create_view_node1389);
pk=pk_constraint();
state._fsp--;
if (state.failed) return ret;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_create_view_node1393); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:387:9: ( AS SELECT ASTERISK FROM bt= from_table_name ( WHERE w= expression )? )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==AS) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// PhoenixSQL.g:387:11: AS SELECT ASTERISK FROM bt= from_table_name ( WHERE w= expression )?
{
match(input,AS,FOLLOW_AS_in_create_view_node1407); if (state.failed) return ret;
match(input,SELECT,FOLLOW_SELECT_in_create_view_node1409); if (state.failed) return ret;
match(input,ASTERISK,FOLLOW_ASTERISK_in_create_view_node1411); if (state.failed) return ret;
match(input,FROM,FOLLOW_FROM_in_create_view_node1423); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_create_view_node1427);
bt=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:389:11: ( WHERE w= expression )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==WHERE) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// PhoenixSQL.g:389:12: WHERE w= expression
{
match(input,WHERE,FOLLOW_WHERE_in_create_view_node1440); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_create_view_node1444);
w=expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
}
break;
}
// PhoenixSQL.g:390:9: (p= fam_properties )?
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==NAME) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// PhoenixSQL.g:390:10: p= fam_properties
{
pushFollow(FOLLOW_fam_properties_in_create_view_node1462);
p=fam_properties();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = factory.createTable(t, p, c, pk, null, PTableType.VIEW, ex!=null, bt==null ? t : bt, w, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "create_view_node"
// $ANTLR start "create_index_node"
// PhoenixSQL.g:395:1: create_index_node returns [CreateIndexStatement ret] : CREATE INDEX ( IF NOT ex= EXISTS )? i= index_name ON t= from_table_name ( LPAREN pk= index_pk_constraint RPAREN ) ( INCLUDE ( LPAREN icrefs= column_names RPAREN ) )? (p= fam_properties )? ( SPLIT ON v= value_expression_list )? ;
public final CreateIndexStatement create_index_node() throws RecognitionException {
CreateIndexStatement ret = null;
Token ex=null;
NamedNode i =null;
TableName t =null;
PrimaryKeyConstraint pk =null;
List icrefs =null;
ListMultimap> p =null;
List v =null;
try {
// PhoenixSQL.g:396:5: ( CREATE INDEX ( IF NOT ex= EXISTS )? i= index_name ON t= from_table_name ( LPAREN pk= index_pk_constraint RPAREN ) ( INCLUDE ( LPAREN icrefs= column_names RPAREN ) )? (p= fam_properties )? ( SPLIT ON v= value_expression_list )? )
// PhoenixSQL.g:396:9: CREATE INDEX ( IF NOT ex= EXISTS )? i= index_name ON t= from_table_name ( LPAREN pk= index_pk_constraint RPAREN ) ( INCLUDE ( LPAREN icrefs= column_names RPAREN ) )? (p= fam_properties )? ( SPLIT ON v= value_expression_list )?
{
match(input,CREATE,FOLLOW_CREATE_in_create_index_node1498); if (state.failed) return ret;
match(input,INDEX,FOLLOW_INDEX_in_create_index_node1500); if (state.failed) return ret;
// PhoenixSQL.g:396:22: ( IF NOT ex= EXISTS )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==IF) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// PhoenixSQL.g:396:23: IF NOT ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_create_index_node1503); if (state.failed) return ret;
match(input,NOT,FOLLOW_NOT_in_create_index_node1505); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_create_index_node1509); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_index_name_in_create_index_node1515);
i=index_name();
state._fsp--;
if (state.failed) return ret;
match(input,ON,FOLLOW_ON_in_create_index_node1517); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_create_index_node1521);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:397:9: ( LPAREN pk= index_pk_constraint RPAREN )
// PhoenixSQL.g:397:10: LPAREN pk= index_pk_constraint RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_create_index_node1532); if (state.failed) return ret;
pushFollow(FOLLOW_index_pk_constraint_in_create_index_node1536);
pk=index_pk_constraint();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_create_index_node1538); if (state.failed) return ret;
}
// PhoenixSQL.g:398:9: ( INCLUDE ( LPAREN icrefs= column_names RPAREN ) )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==INCLUDE) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// PhoenixSQL.g:398:10: INCLUDE ( LPAREN icrefs= column_names RPAREN )
{
match(input,INCLUDE,FOLLOW_INCLUDE_in_create_index_node1550); if (state.failed) return ret;
// PhoenixSQL.g:398:18: ( LPAREN icrefs= column_names RPAREN )
// PhoenixSQL.g:398:19: LPAREN icrefs= column_names RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_create_index_node1553); if (state.failed) return ret;
pushFollow(FOLLOW_column_names_in_create_index_node1557);
icrefs=column_names();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_create_index_node1559); if (state.failed) return ret;
}
}
break;
}
// PhoenixSQL.g:399:9: (p= fam_properties )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==NAME) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// PhoenixSQL.g:399:10: p= fam_properties
{
pushFollow(FOLLOW_fam_properties_in_create_index_node1575);
p=fam_properties();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:400:9: ( SPLIT ON v= value_expression_list )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==SPLIT) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// PhoenixSQL.g:400:10: SPLIT ON v= value_expression_list
{
match(input,SPLIT,FOLLOW_SPLIT_in_create_index_node1588); if (state.failed) return ret;
match(input,ON,FOLLOW_ON_in_create_index_node1590); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_list_in_create_index_node1594);
v=value_expression_list();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.createIndex(i, factory.namedTable(null,t), pk, icrefs, v, p, ex!=null, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "create_index_node"
// $ANTLR start "create_sequence_node"
// PhoenixSQL.g:405:1: create_sequence_node returns [CreateSequenceStatement ret] : CREATE SEQUENCE ( IF NOT ex= EXISTS )? t= from_table_name ( START ( WITH )? s= value_expression )? ( INCREMENT ( BY )? i= value_expression )? ( MINVALUE min= value_expression )? ( MAXVALUE max= value_expression )? (cyc= CYCLE )? ( CACHE c= int_literal_or_bind )? ;
public final CreateSequenceStatement create_sequence_node() throws RecognitionException {
CreateSequenceStatement ret = null;
Token ex=null;
Token cyc=null;
TableName t =null;
ParseNode s =null;
ParseNode i =null;
ParseNode min =null;
ParseNode max =null;
ParseNode c =null;
try {
// PhoenixSQL.g:406:5: ( CREATE SEQUENCE ( IF NOT ex= EXISTS )? t= from_table_name ( START ( WITH )? s= value_expression )? ( INCREMENT ( BY )? i= value_expression )? ( MINVALUE min= value_expression )? ( MAXVALUE max= value_expression )? (cyc= CYCLE )? ( CACHE c= int_literal_or_bind )? )
// PhoenixSQL.g:406:9: CREATE SEQUENCE ( IF NOT ex= EXISTS )? t= from_table_name ( START ( WITH )? s= value_expression )? ( INCREMENT ( BY )? i= value_expression )? ( MINVALUE min= value_expression )? ( MAXVALUE max= value_expression )? (cyc= CYCLE )? ( CACHE c= int_literal_or_bind )?
{
match(input,CREATE,FOLLOW_CREATE_in_create_sequence_node1630); if (state.failed) return ret;
match(input,SEQUENCE,FOLLOW_SEQUENCE_in_create_sequence_node1632); if (state.failed) return ret;
// PhoenixSQL.g:406:26: ( IF NOT ex= EXISTS )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==IF) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// PhoenixSQL.g:406:27: IF NOT ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_create_sequence_node1636); if (state.failed) return ret;
match(input,NOT,FOLLOW_NOT_in_create_sequence_node1638); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_create_sequence_node1642); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_from_table_name_in_create_sequence_node1648);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:407:9: ( START ( WITH )? s= value_expression )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==START) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// PhoenixSQL.g:407:10: START ( WITH )? s= value_expression
{
match(input,START,FOLLOW_START_in_create_sequence_node1659); if (state.failed) return ret;
// PhoenixSQL.g:407:16: ( WITH )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==WITH) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// PhoenixSQL.g:407:16: WITH
{
match(input,WITH,FOLLOW_WITH_in_create_sequence_node1661); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_value_expression_in_create_sequence_node1666);
s=value_expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:408:9: ( INCREMENT ( BY )? i= value_expression )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==INCREMENT) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// PhoenixSQL.g:408:10: INCREMENT ( BY )? i= value_expression
{
match(input,INCREMENT,FOLLOW_INCREMENT_in_create_sequence_node1679); if (state.failed) return ret;
// PhoenixSQL.g:408:20: ( BY )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==BY) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// PhoenixSQL.g:408:20: BY
{
match(input,BY,FOLLOW_BY_in_create_sequence_node1681); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_value_expression_in_create_sequence_node1686);
i=value_expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:409:9: ( MINVALUE min= value_expression )?
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==MINVALUE) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// PhoenixSQL.g:409:10: MINVALUE min= value_expression
{
match(input,MINVALUE,FOLLOW_MINVALUE_in_create_sequence_node1699); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_create_sequence_node1703);
min=value_expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:410:9: ( MAXVALUE max= value_expression )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==MAXVALUE) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// PhoenixSQL.g:410:10: MAXVALUE max= value_expression
{
match(input,MAXVALUE,FOLLOW_MAXVALUE_in_create_sequence_node1716); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_create_sequence_node1720);
max=value_expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:411:9: (cyc= CYCLE )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==CYCLE) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// PhoenixSQL.g:411:10: cyc= CYCLE
{
cyc=(Token)match(input,CYCLE,FOLLOW_CYCLE_in_create_sequence_node1735); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:412:9: ( CACHE c= int_literal_or_bind )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==CACHE) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// PhoenixSQL.g:412:10: CACHE c= int_literal_or_bind
{
match(input,CACHE,FOLLOW_CACHE_in_create_sequence_node1749); if (state.failed) return ret;
pushFollow(FOLLOW_int_literal_or_bind_in_create_sequence_node1753);
c=int_literal_or_bind();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = factory.createSequence(t, s, i, c, min, max, cyc!=null, ex!=null, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "create_sequence_node"
// $ANTLR start "int_literal_or_bind"
// PhoenixSQL.g:416:1: int_literal_or_bind returns [ParseNode ret] : (n= int_literal |b= bind_expression );
public final ParseNode int_literal_or_bind() throws RecognitionException {
ParseNode ret = null;
LiteralParseNode n =null;
BindParseNode b =null;
try {
// PhoenixSQL.g:417:5: (n= int_literal |b= bind_expression )
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==NUMBER) ) {
alt27=1;
}
else if ( (LA27_0==BIND_NAME||LA27_0==QUESTION) ) {
alt27=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// PhoenixSQL.g:417:7: n= int_literal
{
pushFollow(FOLLOW_int_literal_in_int_literal_or_bind1784);
n=int_literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = n; }
}
break;
case 2 :
// PhoenixSQL.g:418:7: b= bind_expression
{
pushFollow(FOLLOW_bind_expression_in_int_literal_or_bind1796);
b=bind_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = b; }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "int_literal_or_bind"
// $ANTLR start "drop_sequence_node"
// PhoenixSQL.g:422:1: drop_sequence_node returns [DropSequenceStatement ret] : DROP SEQUENCE ( IF ex= EXISTS )? t= from_table_name ;
public final DropSequenceStatement drop_sequence_node() throws RecognitionException {
DropSequenceStatement ret = null;
Token ex=null;
TableName t =null;
try {
// PhoenixSQL.g:423:5: ( DROP SEQUENCE ( IF ex= EXISTS )? t= from_table_name )
// PhoenixSQL.g:423:9: DROP SEQUENCE ( IF ex= EXISTS )? t= from_table_name
{
match(input,DROP,FOLLOW_DROP_in_drop_sequence_node1822); if (state.failed) return ret;
match(input,SEQUENCE,FOLLOW_SEQUENCE_in_drop_sequence_node1824); if (state.failed) return ret;
// PhoenixSQL.g:423:24: ( IF ex= EXISTS )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==IF) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// PhoenixSQL.g:423:25: IF ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_drop_sequence_node1828); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_drop_sequence_node1832); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_from_table_name_in_drop_sequence_node1838);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.dropSequence(t, ex!=null, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "drop_sequence_node"
// $ANTLR start "pk_constraint"
// PhoenixSQL.g:427:1: pk_constraint returns [PrimaryKeyConstraint ret] : ( COMMA )? CONSTRAINT n= identifier PRIMARY KEY LPAREN cols= col_name_with_sort_order_list RPAREN ;
public final PrimaryKeyConstraint pk_constraint() throws RecognitionException {
PrimaryKeyConstraint ret = null;
String n =null;
List> cols =null;
try {
// PhoenixSQL.g:428:5: ( ( COMMA )? CONSTRAINT n= identifier PRIMARY KEY LPAREN cols= col_name_with_sort_order_list RPAREN )
// PhoenixSQL.g:428:9: ( COMMA )? CONSTRAINT n= identifier PRIMARY KEY LPAREN cols= col_name_with_sort_order_list RPAREN
{
// PhoenixSQL.g:428:9: ( COMMA )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==COMMA) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// PhoenixSQL.g:428:9: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_pk_constraint1867); if (state.failed) return ret;
}
break;
}
match(input,CONSTRAINT,FOLLOW_CONSTRAINT_in_pk_constraint1870); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_pk_constraint1874);
n=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,PRIMARY,FOLLOW_PRIMARY_in_pk_constraint1876); if (state.failed) return ret;
match(input,KEY,FOLLOW_KEY_in_pk_constraint1878); if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_pk_constraint1880); if (state.failed) return ret;
pushFollow(FOLLOW_col_name_with_sort_order_list_in_pk_constraint1884);
cols=col_name_with_sort_order_list();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_pk_constraint1886); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.primaryKey(n,cols); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "pk_constraint"
// $ANTLR start "col_name_with_sort_order_list"
// PhoenixSQL.g:431:1: col_name_with_sort_order_list returns [List> ret] : p= col_name_with_sort_order ( COMMA p= col_name_with_sort_order )* ;
public final List> col_name_with_sort_order_list() throws RecognitionException {
List> ret = null;
Pair p =null;
ret = new ArrayList>();
try {
// PhoenixSQL.g:433:5: (p= col_name_with_sort_order ( COMMA p= col_name_with_sort_order )* )
// PhoenixSQL.g:433:9: p= col_name_with_sort_order ( COMMA p= col_name_with_sort_order )*
{
pushFollow(FOLLOW_col_name_with_sort_order_in_col_name_with_sort_order_list1917);
p=col_name_with_sort_order();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(p);}
// PhoenixSQL.g:433:52: ( COMMA p= col_name_with_sort_order )*
loop30:
while (true) {
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==COMMA) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// PhoenixSQL.g:433:53: COMMA p= col_name_with_sort_order
{
match(input,COMMA,FOLLOW_COMMA_in_col_name_with_sort_order_list1923); if (state.failed) return ret;
pushFollow(FOLLOW_col_name_with_sort_order_in_col_name_with_sort_order_list1929);
p=col_name_with_sort_order();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(p);}
}
break;
default :
break loop30;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "col_name_with_sort_order_list"
// $ANTLR start "col_name_with_sort_order"
// PhoenixSQL.g:436:1: col_name_with_sort_order returns [Pair ret] : f= identifier (order= ASC |order= DESC )? ;
public final Pair col_name_with_sort_order() throws RecognitionException {
Pair ret = null;
Token order=null;
String f =null;
try {
// PhoenixSQL.g:437:5: (f= identifier (order= ASC |order= DESC )? )
// PhoenixSQL.g:437:9: f= identifier (order= ASC |order= DESC )?
{
pushFollow(FOLLOW_identifier_in_col_name_with_sort_order1955);
f=identifier();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:437:22: (order= ASC |order= DESC )?
int alt31=3;
int LA31_0 = input.LA(1);
if ( (LA31_0==ASC) ) {
alt31=1;
}
else if ( (LA31_0==DESC) ) {
alt31=2;
}
switch (alt31) {
case 1 :
// PhoenixSQL.g:437:23: order= ASC
{
order=(Token)match(input,ASC,FOLLOW_ASC_in_col_name_with_sort_order1960); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:437:33: order= DESC
{
order=(Token)match(input,DESC,FOLLOW_DESC_in_col_name_with_sort_order1964); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = Pair.newPair(factory.columnName(f), order == null ? SortOrder.getDefault() : SortOrder.fromDDLValue(order.getText()));}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "col_name_with_sort_order"
// $ANTLR start "index_pk_constraint"
// PhoenixSQL.g:440:1: index_pk_constraint returns [PrimaryKeyConstraint ret] : cols= col_def_name_with_sort_order_list ;
public final PrimaryKeyConstraint index_pk_constraint() throws RecognitionException {
PrimaryKeyConstraint ret = null;
List> cols =null;
try {
// PhoenixSQL.g:441:5: (cols= col_def_name_with_sort_order_list )
// PhoenixSQL.g:441:9: cols= col_def_name_with_sort_order_list
{
pushFollow(FOLLOW_col_def_name_with_sort_order_list_in_index_pk_constraint1991);
cols=col_def_name_with_sort_order_list();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.primaryKey(null, cols); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "index_pk_constraint"
// $ANTLR start "col_def_name_with_sort_order_list"
// PhoenixSQL.g:444:1: col_def_name_with_sort_order_list returns [List> ret] : p= col_def_name_with_sort_order ( COMMA p= col_def_name_with_sort_order )* ;
public final List> col_def_name_with_sort_order_list() throws RecognitionException {
List> ret = null;
Pair p =null;
ret = new ArrayList>();
try {
// PhoenixSQL.g:446:5: (p= col_def_name_with_sort_order ( COMMA p= col_def_name_with_sort_order )* )
// PhoenixSQL.g:446:9: p= col_def_name_with_sort_order ( COMMA p= col_def_name_with_sort_order )*
{
pushFollow(FOLLOW_col_def_name_with_sort_order_in_col_def_name_with_sort_order_list2022);
p=col_def_name_with_sort_order();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(p);}
// PhoenixSQL.g:446:56: ( COMMA p= col_def_name_with_sort_order )*
loop32:
while (true) {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==COMMA) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// PhoenixSQL.g:446:57: COMMA p= col_def_name_with_sort_order
{
match(input,COMMA,FOLLOW_COMMA_in_col_def_name_with_sort_order_list2028); if (state.failed) return ret;
pushFollow(FOLLOW_col_def_name_with_sort_order_in_col_def_name_with_sort_order_list2034);
p=col_def_name_with_sort_order();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(p);}
}
break;
default :
break loop32;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "col_def_name_with_sort_order_list"
// $ANTLR start "col_def_name_with_sort_order"
// PhoenixSQL.g:449:1: col_def_name_with_sort_order returns [Pair ret] : c= column_name (order= ASC |order= DESC )? ;
public final Pair col_def_name_with_sort_order() throws RecognitionException {
Pair ret = null;
Token order=null;
ColumnName c =null;
try {
// PhoenixSQL.g:450:5: (c= column_name (order= ASC |order= DESC )? )
// PhoenixSQL.g:450:9: c= column_name (order= ASC |order= DESC )?
{
pushFollow(FOLLOW_column_name_in_col_def_name_with_sort_order2060);
c=column_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:450:23: (order= ASC |order= DESC )?
int alt33=3;
int LA33_0 = input.LA(1);
if ( (LA33_0==ASC) ) {
alt33=1;
}
else if ( (LA33_0==DESC) ) {
alt33=2;
}
switch (alt33) {
case 1 :
// PhoenixSQL.g:450:24: order= ASC
{
order=(Token)match(input,ASC,FOLLOW_ASC_in_col_def_name_with_sort_order2065); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:450:34: order= DESC
{
order=(Token)match(input,DESC,FOLLOW_DESC_in_col_def_name_with_sort_order2069); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = Pair.newPair(c, order == null ? SortOrder.getDefault() : SortOrder.fromDDLValue(order.getText()));}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "col_def_name_with_sort_order"
// $ANTLR start "fam_properties"
// PhoenixSQL.g:453:1: fam_properties returns [ListMultimap> ret] : p= fam_prop_name EQ v= prop_value ( COMMA p= fam_prop_name EQ v= prop_value )* ;
public final ListMultimap> fam_properties() throws RecognitionException {
ListMultimap> ret = null;
PropertyName p =null;
Object v =null;
ret = ArrayListMultimap.>create();
try {
// PhoenixSQL.g:455:5: (p= fam_prop_name EQ v= prop_value ( COMMA p= fam_prop_name EQ v= prop_value )* )
// PhoenixSQL.g:455:8: p= fam_prop_name EQ v= prop_value ( COMMA p= fam_prop_name EQ v= prop_value )*
{
pushFollow(FOLLOW_fam_prop_name_in_fam_properties2097);
p=fam_prop_name();
state._fsp--;
if (state.failed) return ret;
match(input,EQ,FOLLOW_EQ_in_fam_properties2099); if (state.failed) return ret;
pushFollow(FOLLOW_prop_value_in_fam_properties2103);
v=prop_value();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.put(p.getFamilyName(),new Pair(p.getPropertyName(),v));}
// PhoenixSQL.g:455:119: ( COMMA p= fam_prop_name EQ v= prop_value )*
loop34:
while (true) {
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==COMMA) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// PhoenixSQL.g:455:120: COMMA p= fam_prop_name EQ v= prop_value
{
match(input,COMMA,FOLLOW_COMMA_in_fam_properties2109); if (state.failed) return ret;
pushFollow(FOLLOW_fam_prop_name_in_fam_properties2113);
p=fam_prop_name();
state._fsp--;
if (state.failed) return ret;
match(input,EQ,FOLLOW_EQ_in_fam_properties2115); if (state.failed) return ret;
pushFollow(FOLLOW_prop_value_in_fam_properties2119);
v=prop_value();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.put(p.getFamilyName(),new Pair(p.getPropertyName(),v));}
}
break;
default :
break loop34;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "fam_properties"
// $ANTLR start "fam_prop_name"
// PhoenixSQL.g:458:1: fam_prop_name returns [PropertyName ret] : (propName= identifier |familyName= identifier DOT propName= identifier );
public final PropertyName fam_prop_name() throws RecognitionException {
PropertyName ret = null;
String propName =null;
String familyName =null;
try {
// PhoenixSQL.g:459:5: (propName= identifier |familyName= identifier DOT propName= identifier )
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==NAME) ) {
int LA35_1 = input.LA(2);
if ( (LA35_1==EQ) ) {
alt35=1;
}
else if ( (LA35_1==DOT) ) {
alt35=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 35, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// PhoenixSQL.g:459:9: propName= identifier
{
pushFollow(FOLLOW_identifier_in_fam_prop_name2149);
propName=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.propertyName(propName); }
}
break;
case 2 :
// PhoenixSQL.g:460:9: familyName= identifier DOT propName= identifier
{
pushFollow(FOLLOW_identifier_in_fam_prop_name2163);
familyName=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_fam_prop_name2165); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_fam_prop_name2169);
propName=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.propertyName(familyName, propName); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "fam_prop_name"
// $ANTLR start "prop_value"
// PhoenixSQL.g:463:1: prop_value returns [Object ret] : l= literal ;
public final Object prop_value() throws RecognitionException {
Object ret = null;
LiteralParseNode l =null;
try {
// PhoenixSQL.g:464:5: (l= literal )
// PhoenixSQL.g:464:9: l= literal
{
pushFollow(FOLLOW_literal_in_prop_value2200);
l=literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = l.getValue(); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "prop_value"
// $ANTLR start "column_name"
// PhoenixSQL.g:467:1: column_name returns [ColumnName ret] : (field= identifier |family= identifier DOT field= identifier );
public final ColumnName column_name() throws RecognitionException {
ColumnName ret = null;
String field =null;
String family =null;
try {
// PhoenixSQL.g:468:5: (field= identifier |family= identifier DOT field= identifier )
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==NAME) ) {
int LA36_1 = input.LA(2);
if ( (LA36_1==EOF||LA36_1==ASC||LA36_1==COMMA||LA36_1==DESC||LA36_1==NAME||LA36_1==RPAREN||LA36_1==SEMICOLON) ) {
alt36=1;
}
else if ( (LA36_1==DOT) ) {
alt36=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 36, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
// PhoenixSQL.g:468:9: field= identifier
{
pushFollow(FOLLOW_identifier_in_column_name2231);
field=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.columnName(field); }
}
break;
case 2 :
// PhoenixSQL.g:469:9: family= identifier DOT field= identifier
{
pushFollow(FOLLOW_identifier_in_column_name2245);
family=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_column_name2247); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_column_name2251);
field=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.columnName(family, field); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "column_name"
// $ANTLR start "column_names"
// PhoenixSQL.g:472:1: column_names returns [List ret] : v= column_name ( COMMA v= column_name )* ;
public final List column_names() throws RecognitionException {
List ret = null;
ColumnName v =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:474:5: (v= column_name ( COMMA v= column_name )* )
// PhoenixSQL.g:474:8: v= column_name ( COMMA v= column_name )*
{
pushFollow(FOLLOW_column_name_in_column_names2283);
v=column_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
// PhoenixSQL.g:474:40: ( COMMA v= column_name )*
loop37:
while (true) {
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==COMMA) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// PhoenixSQL.g:474:41: COMMA v= column_name
{
match(input,COMMA,FOLLOW_COMMA_in_column_names2289); if (state.failed) return ret;
pushFollow(FOLLOW_column_name_in_column_names2295);
v=column_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
}
break;
default :
break loop37;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "column_names"
// $ANTLR start "drop_table_node"
// PhoenixSQL.g:479:1: drop_table_node returns [DropTableStatement ret] : DROP (v= VIEW | TABLE ) ( IF ex= EXISTS )? t= from_table_name (c= CASCADE )? ;
public final DropTableStatement drop_table_node() throws RecognitionException {
DropTableStatement ret = null;
Token v=null;
Token ex=null;
Token c=null;
TableName t =null;
try {
// PhoenixSQL.g:480:5: ( DROP (v= VIEW | TABLE ) ( IF ex= EXISTS )? t= from_table_name (c= CASCADE )? )
// PhoenixSQL.g:480:9: DROP (v= VIEW | TABLE ) ( IF ex= EXISTS )? t= from_table_name (c= CASCADE )?
{
match(input,DROP,FOLLOW_DROP_in_drop_table_node2322); if (state.failed) return ret;
// PhoenixSQL.g:480:14: (v= VIEW | TABLE )
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==VIEW) ) {
alt38=1;
}
else if ( (LA38_0==TABLE) ) {
alt38=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// PhoenixSQL.g:480:15: v= VIEW
{
v=(Token)match(input,VIEW,FOLLOW_VIEW_in_drop_table_node2327); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:480:24: TABLE
{
match(input,TABLE,FOLLOW_TABLE_in_drop_table_node2331); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:480:31: ( IF ex= EXISTS )?
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==IF) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// PhoenixSQL.g:480:32: IF ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_drop_table_node2335); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_drop_table_node2339); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_from_table_name_in_drop_table_node2345);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:480:65: (c= CASCADE )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==CASCADE) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// PhoenixSQL.g:480:66: c= CASCADE
{
c=(Token)match(input,CASCADE,FOLLOW_CASCADE_in_drop_table_node2350); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.dropTable(t, v==null ? (QueryConstants.SYSTEM_SCHEMA_NAME.equals(t.getSchemaName()) ? PTableType.SYSTEM : PTableType.TABLE) : PTableType.VIEW, ex!=null, c!=null); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "drop_table_node"
// $ANTLR start "drop_index_node"
// PhoenixSQL.g:485:1: drop_index_node returns [DropIndexStatement ret] : DROP INDEX ( IF ex= EXISTS )? i= index_name ON t= from_table_name ;
public final DropIndexStatement drop_index_node() throws RecognitionException {
DropIndexStatement ret = null;
Token ex=null;
NamedNode i =null;
TableName t =null;
try {
// PhoenixSQL.g:486:5: ( DROP INDEX ( IF ex= EXISTS )? i= index_name ON t= from_table_name )
// PhoenixSQL.g:486:7: DROP INDEX ( IF ex= EXISTS )? i= index_name ON t= from_table_name
{
match(input,DROP,FOLLOW_DROP_in_drop_index_node2384); if (state.failed) return ret;
match(input,INDEX,FOLLOW_INDEX_in_drop_index_node2386); if (state.failed) return ret;
// PhoenixSQL.g:486:18: ( IF ex= EXISTS )?
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==IF) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// PhoenixSQL.g:486:19: IF ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_drop_index_node2389); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_drop_index_node2393); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_index_name_in_drop_index_node2399);
i=index_name();
state._fsp--;
if (state.failed) return ret;
match(input,ON,FOLLOW_ON_in_drop_index_node2401); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_drop_index_node2405);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.dropIndex(i, t, ex!=null); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "drop_index_node"
// $ANTLR start "alter_index_node"
// PhoenixSQL.g:491:1: alter_index_node returns [AlterIndexStatement ret] : ALTER INDEX ( IF ex= EXISTS )? i= index_name ON t= from_table_name s= ( USABLE | UNUSABLE | REBUILD | DISABLE ) ;
public final AlterIndexStatement alter_index_node() throws RecognitionException {
AlterIndexStatement ret = null;
Token ex=null;
Token s=null;
NamedNode i =null;
TableName t =null;
try {
// PhoenixSQL.g:492:5: ( ALTER INDEX ( IF ex= EXISTS )? i= index_name ON t= from_table_name s= ( USABLE | UNUSABLE | REBUILD | DISABLE ) )
// PhoenixSQL.g:492:7: ALTER INDEX ( IF ex= EXISTS )? i= index_name ON t= from_table_name s= ( USABLE | UNUSABLE | REBUILD | DISABLE )
{
match(input,ALTER,FOLLOW_ALTER_in_alter_index_node2435); if (state.failed) return ret;
match(input,INDEX,FOLLOW_INDEX_in_alter_index_node2437); if (state.failed) return ret;
// PhoenixSQL.g:492:19: ( IF ex= EXISTS )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==IF) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// PhoenixSQL.g:492:20: IF ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_alter_index_node2440); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_alter_index_node2444); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_index_name_in_alter_index_node2450);
i=index_name();
state._fsp--;
if (state.failed) return ret;
match(input,ON,FOLLOW_ON_in_alter_index_node2452); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_alter_index_node2456);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
s=input.LT(1);
if ( input.LA(1)==DISABLE||input.LA(1)==REBUILD||input.LA(1)==UNUSABLE||input.LA(1)==USABLE ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
if ( state.backtracking==0 ) {ret = factory.alterIndex(factory.namedTable(null, TableName.create(t.getSchemaName(), i.getName())), t.getTableName(), ex!=null, PIndexState.valueOf(SchemaUtil.normalizeIdentifier(s.getText()))); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "alter_index_node"
// $ANTLR start "alter_table_node"
// PhoenixSQL.g:497:1: alter_table_node returns [AlterTableStatement ret] : ALTER ( TABLE |v= VIEW ) t= from_table_name ( ( DROP COLUMN ( IF ex= EXISTS )? c= column_names ) | ( ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )? ) | ( SET (p= properties ) ) ) ;
public final AlterTableStatement alter_table_node() throws RecognitionException {
AlterTableStatement ret = null;
Token v=null;
Token ex=null;
TableName t =null;
List c =null;
List d =null;
Map p =null;
try {
// PhoenixSQL.g:498:5: ( ALTER ( TABLE |v= VIEW ) t= from_table_name ( ( DROP COLUMN ( IF ex= EXISTS )? c= column_names ) | ( ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )? ) | ( SET (p= properties ) ) ) )
// PhoenixSQL.g:498:9: ALTER ( TABLE |v= VIEW ) t= from_table_name ( ( DROP COLUMN ( IF ex= EXISTS )? c= column_names ) | ( ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )? ) | ( SET (p= properties ) ) )
{
match(input,ALTER,FOLLOW_ALTER_in_alter_table_node2506); if (state.failed) return ret;
// PhoenixSQL.g:498:15: ( TABLE |v= VIEW )
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==TABLE) ) {
alt43=1;
}
else if ( (LA43_0==VIEW) ) {
alt43=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
// PhoenixSQL.g:498:16: TABLE
{
match(input,TABLE,FOLLOW_TABLE_in_alter_table_node2509); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:498:24: v= VIEW
{
v=(Token)match(input,VIEW,FOLLOW_VIEW_in_alter_table_node2515); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_from_table_name_in_alter_table_node2520);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:499:9: ( ( DROP COLUMN ( IF ex= EXISTS )? c= column_names ) | ( ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )? ) | ( SET (p= properties ) ) )
int alt47=3;
switch ( input.LA(1) ) {
case DROP:
{
alt47=1;
}
break;
case ADD:
{
alt47=2;
}
break;
case SET:
{
alt47=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// PhoenixSQL.g:499:11: ( DROP COLUMN ( IF ex= EXISTS )? c= column_names )
{
// PhoenixSQL.g:499:11: ( DROP COLUMN ( IF ex= EXISTS )? c= column_names )
// PhoenixSQL.g:499:12: DROP COLUMN ( IF ex= EXISTS )? c= column_names
{
match(input,DROP,FOLLOW_DROP_in_alter_table_node2533); if (state.failed) return ret;
match(input,COLUMN,FOLLOW_COLUMN_in_alter_table_node2535); if (state.failed) return ret;
// PhoenixSQL.g:499:24: ( IF ex= EXISTS )?
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==IF) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// PhoenixSQL.g:499:25: IF ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_alter_table_node2538); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_alter_table_node2542); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_column_names_in_alter_table_node2548);
c=column_names();
state._fsp--;
if (state.failed) return ret;
}
}
break;
case 2 :
// PhoenixSQL.g:499:58: ( ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )? )
{
// PhoenixSQL.g:499:58: ( ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )? )
// PhoenixSQL.g:499:59: ADD ( IF NOT ex= EXISTS )? (d= column_defs ) (p= properties )?
{
match(input,ADD,FOLLOW_ADD_in_alter_table_node2554); if (state.failed) return ret;
// PhoenixSQL.g:499:63: ( IF NOT ex= EXISTS )?
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==IF) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// PhoenixSQL.g:499:64: IF NOT ex= EXISTS
{
match(input,IF,FOLLOW_IF_in_alter_table_node2557); if (state.failed) return ret;
match(input,NOT,FOLLOW_NOT_in_alter_table_node2559); if (state.failed) return ret;
ex=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_alter_table_node2563); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:499:83: (d= column_defs )
// PhoenixSQL.g:499:84: d= column_defs
{
pushFollow(FOLLOW_column_defs_in_alter_table_node2570);
d=column_defs();
state._fsp--;
if (state.failed) return ret;
}
// PhoenixSQL.g:499:99: (p= properties )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==NAME) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// PhoenixSQL.g:499:100: p= properties
{
pushFollow(FOLLOW_properties_in_alter_table_node2576);
p=properties();
state._fsp--;
if (state.failed) return ret;
}
break;
}
}
}
break;
case 3 :
// PhoenixSQL.g:499:118: ( SET (p= properties ) )
{
// PhoenixSQL.g:499:118: ( SET (p= properties ) )
// PhoenixSQL.g:499:119: SET (p= properties )
{
match(input,SET,FOLLOW_SET_in_alter_table_node2584); if (state.failed) return ret;
// PhoenixSQL.g:499:123: (p= properties )
// PhoenixSQL.g:499:124: p= properties
{
pushFollow(FOLLOW_properties_in_alter_table_node2589);
p=properties();
state._fsp--;
if (state.failed) return ret;
}
}
}
break;
}
if ( state.backtracking==0 ) { PTableType tt = v==null ? (QueryConstants.SYSTEM_SCHEMA_NAME.equals(t.getSchemaName()) ? PTableType.SYSTEM : PTableType.TABLE) : PTableType.VIEW; ret = ( c == null ? factory.addColumn(factory.namedTable(null,t), tt, d, ex!=null, p) : factory.dropColumn(factory.namedTable(null,t), tt, c, ex!=null) ); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "alter_table_node"
// $ANTLR start "update_statistics_node"
// PhoenixSQL.g:503:1: update_statistics_node returns [UpdateStatisticsStatement ret] : UPDATE STATISTICS t= from_table_name (s= INDEX |s= ALL |s= COLUMNS )? ;
public final UpdateStatisticsStatement update_statistics_node() throws RecognitionException {
UpdateStatisticsStatement ret = null;
Token s=null;
TableName t =null;
try {
// PhoenixSQL.g:504:2: ( UPDATE STATISTICS t= from_table_name (s= INDEX |s= ALL |s= COLUMNS )? )
// PhoenixSQL.g:504:6: UPDATE STATISTICS t= from_table_name (s= INDEX |s= ALL |s= COLUMNS )?
{
match(input,UPDATE,FOLLOW_UPDATE_in_update_statistics_node2623); if (state.failed) return ret;
match(input,STATISTICS,FOLLOW_STATISTICS_in_update_statistics_node2625); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_update_statistics_node2629);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:504:42: (s= INDEX |s= ALL |s= COLUMNS )?
int alt48=4;
switch ( input.LA(1) ) {
case INDEX:
{
alt48=1;
}
break;
case ALL:
{
alt48=2;
}
break;
case COLUMNS:
{
alt48=3;
}
break;
}
switch (alt48) {
case 1 :
// PhoenixSQL.g:504:43: s= INDEX
{
s=(Token)match(input,INDEX,FOLLOW_INDEX_in_update_statistics_node2634); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:504:53: s= ALL
{
s=(Token)match(input,ALL,FOLLOW_ALL_in_update_statistics_node2640); if (state.failed) return ret;
}
break;
case 3 :
// PhoenixSQL.g:504:61: s= COLUMNS
{
s=(Token)match(input,COLUMNS,FOLLOW_COLUMNS_in_update_statistics_node2646); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.updateStatistics(factory.namedTable(null, t), s == null ? StatisticsCollectionScope.getDefault() : StatisticsCollectionScope.valueOf(SchemaUtil.normalizeIdentifier(s.getText())));}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "update_statistics_node"
// $ANTLR start "prop_name"
// PhoenixSQL.g:508:1: prop_name returns [String ret] : p= identifier ;
public final String prop_name() throws RecognitionException {
String ret = null;
String p =null;
try {
// PhoenixSQL.g:509:5: (p= identifier )
// PhoenixSQL.g:509:9: p= identifier
{
pushFollow(FOLLOW_identifier_in_prop_name2674);
p=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = SchemaUtil.normalizeIdentifier(p); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "prop_name"
// $ANTLR start "properties"
// PhoenixSQL.g:512:1: properties returns [Map ret] : k= prop_name EQ v= prop_value ( COMMA k= prop_name EQ v= prop_value )* ;
public final Map properties() throws RecognitionException {
Map ret = null;
String k =null;
Object v =null;
ret = new HashMap();
try {
// PhoenixSQL.g:514:5: (k= prop_name EQ v= prop_value ( COMMA k= prop_name EQ v= prop_value )* )
// PhoenixSQL.g:514:8: k= prop_name EQ v= prop_value ( COMMA k= prop_name EQ v= prop_value )*
{
pushFollow(FOLLOW_prop_name_in_properties2708);
k=prop_name();
state._fsp--;
if (state.failed) return ret;
match(input,EQ,FOLLOW_EQ_in_properties2710); if (state.failed) return ret;
pushFollow(FOLLOW_prop_value_in_properties2714);
v=prop_value();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.put(k,v);}
// PhoenixSQL.g:514:54: ( COMMA k= prop_name EQ v= prop_value )*
loop49:
while (true) {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==COMMA) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// PhoenixSQL.g:514:55: COMMA k= prop_name EQ v= prop_value
{
match(input,COMMA,FOLLOW_COMMA_in_properties2720); if (state.failed) return ret;
pushFollow(FOLLOW_prop_name_in_properties2724);
k=prop_name();
state._fsp--;
if (state.failed) return ret;
match(input,EQ,FOLLOW_EQ_in_properties2726); if (state.failed) return ret;
pushFollow(FOLLOW_prop_value_in_properties2730);
v=prop_value();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.put(k,v);}
}
break;
default :
break loop49;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "properties"
// $ANTLR start "column_defs"
// PhoenixSQL.g:517:1: column_defs returns [List ret] : v= column_def ( COMMA v= column_def )* ;
public final List column_defs() throws RecognitionException {
List ret = null;
ColumnDef v =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:519:5: (v= column_def ( COMMA v= column_def )* )
// PhoenixSQL.g:519:8: v= column_def ( COMMA v= column_def )*
{
pushFollow(FOLLOW_column_def_in_column_defs2765);
v=column_def();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
// PhoenixSQL.g:519:39: ( COMMA v= column_def )*
loop50:
while (true) {
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==COMMA) ) {
int LA50_1 = input.LA(2);
if ( (LA50_1==NAME) ) {
alt50=1;
}
}
switch (alt50) {
case 1 :
// PhoenixSQL.g:519:40: COMMA v= column_def
{
match(input,COMMA,FOLLOW_COMMA_in_column_defs2771); if (state.failed) return ret;
pushFollow(FOLLOW_column_def_in_column_defs2777);
v=column_def();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
}
break;
default :
break loop50;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "column_defs"
// $ANTLR start "column_def"
// PhoenixSQL.g:522:1: column_def returns [ColumnDef ret] : c= column_name dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? ( (nn= NOT )? n= NULL )? (pk= PRIMARY KEY (order= ASC |order= DESC )? )? ;
public final ColumnDef column_def() throws RecognitionException {
ColumnDef ret = null;
Token l=null;
Token s=null;
Token ar=null;
Token lsq=null;
Token a=null;
Token nn=null;
Token n=null;
Token pk=null;
Token order=null;
ColumnName c =null;
String dt =null;
try {
// PhoenixSQL.g:523:5: (c= column_name dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? ( (nn= NOT )? n= NULL )? (pk= PRIMARY KEY (order= ASC |order= DESC )? )? )
// PhoenixSQL.g:523:9: c= column_name dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? ( (nn= NOT )? n= NULL )? (pk= PRIMARY KEY (order= ASC |order= DESC )? )?
{
pushFollow(FOLLOW_column_name_in_column_def2803);
c=column_name();
state._fsp--;
if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_column_def2807);
dt=identifier();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:523:37: ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==LPAREN) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// PhoenixSQL.g:523:38: LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_column_def2810); if (state.failed) return ret;
l=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_column_def2814); if (state.failed) return ret;
// PhoenixSQL.g:523:54: ( COMMA s= NUMBER )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==COMMA) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// PhoenixSQL.g:523:55: COMMA s= NUMBER
{
match(input,COMMA,FOLLOW_COMMA_in_column_def2817); if (state.failed) return ret;
s=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_column_def2821); if (state.failed) return ret;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_column_def2825); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:523:83: (ar= ARRAY )?
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==ARRAY) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// PhoenixSQL.g:523:83: ar= ARRAY
{
ar=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_column_def2831); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:523:91: (lsq= LSQUARE (a= NUMBER )? RSQUARE )?
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==LSQUARE) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// PhoenixSQL.g:523:92: lsq= LSQUARE (a= NUMBER )? RSQUARE
{
lsq=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_column_def2837); if (state.failed) return ret;
// PhoenixSQL.g:523:104: (a= NUMBER )?
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==NUMBER) ) {
alt54=1;
}
switch (alt54) {
case 1 :
// PhoenixSQL.g:523:105: a= NUMBER
{
a=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_column_def2842); if (state.failed) return ret;
}
break;
}
match(input,RSQUARE,FOLLOW_RSQUARE_in_column_def2846); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:523:126: ( (nn= NOT )? n= NULL )?
int alt57=2;
int LA57_0 = input.LA(1);
if ( ((LA57_0 >= NOT && LA57_0 <= NULL)) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// PhoenixSQL.g:523:127: (nn= NOT )? n= NULL
{
// PhoenixSQL.g:523:129: (nn= NOT )?
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==NOT) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// PhoenixSQL.g:523:129: nn= NOT
{
nn=(Token)match(input,NOT,FOLLOW_NOT_in_column_def2853); if (state.failed) return ret;
}
break;
}
n=(Token)match(input,NULL,FOLLOW_NULL_in_column_def2858); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:523:144: (pk= PRIMARY KEY (order= ASC |order= DESC )? )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==PRIMARY) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// PhoenixSQL.g:523:145: pk= PRIMARY KEY (order= ASC |order= DESC )?
{
pk=(Token)match(input,PRIMARY,FOLLOW_PRIMARY_in_column_def2865); if (state.failed) return ret;
match(input,KEY,FOLLOW_KEY_in_column_def2867); if (state.failed) return ret;
// PhoenixSQL.g:523:160: (order= ASC |order= DESC )?
int alt58=3;
int LA58_0 = input.LA(1);
if ( (LA58_0==ASC) ) {
alt58=1;
}
else if ( (LA58_0==DESC) ) {
alt58=2;
}
switch (alt58) {
case 1 :
// PhoenixSQL.g:523:161: order= ASC
{
order=(Token)match(input,ASC,FOLLOW_ASC_in_column_def2872); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:523:171: order= DESC
{
order=(Token)match(input,DESC,FOLLOW_DESC_in_column_def2876); if (state.failed) return ret;
}
break;
}
}
break;
}
if ( state.backtracking==0 ) { ret = factory.columnDef(c, dt, ar != null || lsq != null, a == null ? null : Integer.parseInt( a.getText() ), nn!=null ? Boolean.FALSE : n!=null ? Boolean.TRUE : null,
l == null ? null : Integer.parseInt( l.getText() ),
s == null ? null : Integer.parseInt( s.getText() ),
pk != null,
order == null ? SortOrder.getDefault() : SortOrder.fromDDLValue(order.getText()) ); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "column_def"
// $ANTLR start "dyn_column_defs"
// PhoenixSQL.g:531:1: dyn_column_defs returns [List ret] : v= dyn_column_def ( COMMA v= dyn_column_def )* ;
public final List dyn_column_defs() throws RecognitionException {
List ret = null;
ColumnDef v =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:533:5: (v= dyn_column_def ( COMMA v= dyn_column_def )* )
// PhoenixSQL.g:533:8: v= dyn_column_def ( COMMA v= dyn_column_def )*
{
pushFollow(FOLLOW_dyn_column_def_in_dyn_column_defs2920);
v=dyn_column_def();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
// PhoenixSQL.g:533:43: ( COMMA v= dyn_column_def )*
loop60:
while (true) {
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==COMMA) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// PhoenixSQL.g:533:44: COMMA v= dyn_column_def
{
match(input,COMMA,FOLLOW_COMMA_in_dyn_column_defs2926); if (state.failed) return ret;
pushFollow(FOLLOW_dyn_column_def_in_dyn_column_defs2932);
v=dyn_column_def();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
}
break;
default :
break loop60;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "dyn_column_defs"
// $ANTLR start "dyn_column_def"
// PhoenixSQL.g:536:1: dyn_column_def returns [ColumnDef ret] : c= column_name dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? ;
public final ColumnDef dyn_column_def() throws RecognitionException {
ColumnDef ret = null;
Token l=null;
Token s=null;
Token ar=null;
Token lsq=null;
Token a=null;
ColumnName c =null;
String dt =null;
try {
// PhoenixSQL.g:537:5: (c= column_name dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? )
// PhoenixSQL.g:537:9: c= column_name dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )?
{
pushFollow(FOLLOW_column_name_in_dyn_column_def2958);
c=column_name();
state._fsp--;
if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_dyn_column_def2962);
dt=identifier();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:537:37: ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )?
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==LPAREN) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// PhoenixSQL.g:537:38: LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_dyn_column_def2965); if (state.failed) return ret;
l=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_dyn_column_def2969); if (state.failed) return ret;
// PhoenixSQL.g:537:54: ( COMMA s= NUMBER )?
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==COMMA) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// PhoenixSQL.g:537:55: COMMA s= NUMBER
{
match(input,COMMA,FOLLOW_COMMA_in_dyn_column_def2972); if (state.failed) return ret;
s=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_dyn_column_def2976); if (state.failed) return ret;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_dyn_column_def2980); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:537:83: (ar= ARRAY )?
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==ARRAY) ) {
alt63=1;
}
switch (alt63) {
case 1 :
// PhoenixSQL.g:537:83: ar= ARRAY
{
ar=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_dyn_column_def2986); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:537:91: (lsq= LSQUARE (a= NUMBER )? RSQUARE )?
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==LSQUARE) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// PhoenixSQL.g:537:92: lsq= LSQUARE (a= NUMBER )? RSQUARE
{
lsq=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_dyn_column_def2992); if (state.failed) return ret;
// PhoenixSQL.g:537:104: (a= NUMBER )?
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==NUMBER) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// PhoenixSQL.g:537:105: a= NUMBER
{
a=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_dyn_column_def2997); if (state.failed) return ret;
}
break;
}
match(input,RSQUARE,FOLLOW_RSQUARE_in_dyn_column_def3001); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.columnDef(c, dt, ar != null || lsq != null, a == null ? null : Integer.parseInt( a.getText() ), Boolean.TRUE,
l == null ? null : Integer.parseInt( l.getText() ),
s == null ? null : Integer.parseInt( s.getText() ),
false,
SortOrder.getDefault()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "dyn_column_def"
// $ANTLR start "dyn_column_name_or_def"
// PhoenixSQL.g:545:1: dyn_column_name_or_def returns [ColumnDef ret] : c= column_name (dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? )? ;
public final ColumnDef dyn_column_name_or_def() throws RecognitionException {
ColumnDef ret = null;
Token l=null;
Token s=null;
Token ar=null;
Token lsq=null;
Token a=null;
ColumnName c =null;
String dt =null;
try {
// PhoenixSQL.g:546:5: (c= column_name (dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? )? )
// PhoenixSQL.g:546:9: c= column_name (dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? )?
{
pushFollow(FOLLOW_column_name_in_dyn_column_name_or_def3038);
c=column_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:546:23: (dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )? )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==NAME) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// PhoenixSQL.g:546:24: dt= identifier ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )? (ar= ARRAY )? (lsq= LSQUARE (a= NUMBER )? RSQUARE )?
{
pushFollow(FOLLOW_identifier_in_dyn_column_name_or_def3043);
dt=identifier();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:546:38: ( LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN )?
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==LPAREN) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// PhoenixSQL.g:546:39: LPAREN l= NUMBER ( COMMA s= NUMBER )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_dyn_column_name_or_def3046); if (state.failed) return ret;
l=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_dyn_column_name_or_def3050); if (state.failed) return ret;
// PhoenixSQL.g:546:55: ( COMMA s= NUMBER )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==COMMA) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// PhoenixSQL.g:546:56: COMMA s= NUMBER
{
match(input,COMMA,FOLLOW_COMMA_in_dyn_column_name_or_def3053); if (state.failed) return ret;
s=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_dyn_column_name_or_def3057); if (state.failed) return ret;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_dyn_column_name_or_def3061); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:546:84: (ar= ARRAY )?
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==ARRAY) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// PhoenixSQL.g:546:84: ar= ARRAY
{
ar=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_dyn_column_name_or_def3067); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:546:92: (lsq= LSQUARE (a= NUMBER )? RSQUARE )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==LSQUARE) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// PhoenixSQL.g:546:93: lsq= LSQUARE (a= NUMBER )? RSQUARE
{
lsq=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_dyn_column_name_or_def3073); if (state.failed) return ret;
// PhoenixSQL.g:546:105: (a= NUMBER )?
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==NUMBER) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// PhoenixSQL.g:546:106: a= NUMBER
{
a=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_dyn_column_name_or_def3078); if (state.failed) return ret;
}
break;
}
match(input,RSQUARE,FOLLOW_RSQUARE_in_dyn_column_name_or_def3082); if (state.failed) return ret;
}
break;
}
}
break;
}
if ( state.backtracking==0 ) {ret = factory.columnDef(c, dt, ar != null || lsq != null, a == null ? null : Integer.parseInt( a.getText() ), Boolean.TRUE,
l == null ? null : Integer.parseInt( l.getText() ),
s == null ? null : Integer.parseInt( s.getText() ),
false,
SortOrder.getDefault()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "dyn_column_name_or_def"
// $ANTLR start "select_expression"
// PhoenixSQL.g:554:1: select_expression returns [SelectStatement ret] : SELECT s= select_node ;
public final SelectStatement select_expression() throws RecognitionException {
SelectStatement ret = null;
SelectStatement s =null;
try {
// PhoenixSQL.g:555:5: ( SELECT s= select_node )
// PhoenixSQL.g:555:8: SELECT s= select_node
{
match(input,SELECT,FOLLOW_SELECT_in_select_expression3120); if (state.failed) return ret;
pushFollow(FOLLOW_select_node_in_select_expression3124);
s=select_node();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = s;}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "select_expression"
// $ANTLR start "subquery_expression"
// PhoenixSQL.g:558:1: subquery_expression returns [ParseNode ret] : s= select_expression ;
public final ParseNode subquery_expression() throws RecognitionException {
ParseNode ret = null;
SelectStatement s =null;
try {
// PhoenixSQL.g:559:5: (s= select_expression )
// PhoenixSQL.g:559:8: s= select_expression
{
pushFollow(FOLLOW_select_expression_in_subquery_expression3154);
s=select_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.subquery(s, false);}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "subquery_expression"
// $ANTLR start "select_node"
// PhoenixSQL.g:563:1: select_node returns [SelectStatement ret] : (d= DISTINCT | ALL )? sel= select_list FROM from= parseFrom ( WHERE where= expression )? ( GROUP BY group= group_by )? ( HAVING having= expression )? ( ORDER BY order= order_by )? ( LIMIT l= limit )? ;
public final SelectStatement select_node() throws RecognitionException {
SelectStatement ret = null;
Token d=null;
List sel =null;
TableNode from =null;
ParseNode where =null;
List group =null;
ParseNode having =null;
List order =null;
LimitNode l =null;
contextStack.push(new ParseContext());
try {
// PhoenixSQL.g:565:5: ( (d= DISTINCT | ALL )? sel= select_list FROM from= parseFrom ( WHERE where= expression )? ( GROUP BY group= group_by )? ( HAVING having= expression )? ( ORDER BY order= order_by )? ( LIMIT l= limit )? )
// PhoenixSQL.g:565:9: (d= DISTINCT | ALL )? sel= select_list FROM from= parseFrom ( WHERE where= expression )? ( GROUP BY group= group_by )? ( HAVING having= expression )? ( ORDER BY order= order_by )? ( LIMIT l= limit )?
{
// PhoenixSQL.g:565:9: (d= DISTINCT | ALL )?
int alt72=3;
int LA72_0 = input.LA(1);
if ( (LA72_0==DISTINCT) ) {
alt72=1;
}
else if ( (LA72_0==ALL) ) {
alt72=2;
}
switch (alt72) {
case 1 :
// PhoenixSQL.g:565:10: d= DISTINCT
{
d=(Token)match(input,DISTINCT,FOLLOW_DISTINCT_in_select_node3191); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:565:23: ALL
{
match(input,ALL,FOLLOW_ALL_in_select_node3195); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_select_list_in_select_node3201);
sel=select_list();
state._fsp--;
if (state.failed) return ret;
match(input,FROM,FOLLOW_FROM_in_select_node3211); if (state.failed) return ret;
pushFollow(FOLLOW_parseFrom_in_select_node3215);
from=parseFrom();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:567:9: ( WHERE where= expression )?
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==WHERE) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// PhoenixSQL.g:567:10: WHERE where= expression
{
match(input,WHERE,FOLLOW_WHERE_in_select_node3226); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_select_node3230);
where=expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:568:9: ( GROUP BY group= group_by )?
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==GROUP) ) {
alt74=1;
}
switch (alt74) {
case 1 :
// PhoenixSQL.g:568:10: GROUP BY group= group_by
{
match(input,GROUP,FOLLOW_GROUP_in_select_node3243); if (state.failed) return ret;
match(input,BY,FOLLOW_BY_in_select_node3245); if (state.failed) return ret;
pushFollow(FOLLOW_group_by_in_select_node3249);
group=group_by();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:569:9: ( HAVING having= expression )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==HAVING) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// PhoenixSQL.g:569:10: HAVING having= expression
{
match(input,HAVING,FOLLOW_HAVING_in_select_node3262); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_select_node3266);
having=expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:570:9: ( ORDER BY order= order_by )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==ORDER) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// PhoenixSQL.g:570:10: ORDER BY order= order_by
{
match(input,ORDER,FOLLOW_ORDER_in_select_node3279); if (state.failed) return ret;
match(input,BY,FOLLOW_BY_in_select_node3281); if (state.failed) return ret;
pushFollow(FOLLOW_order_by_in_select_node3285);
order=order_by();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:571:9: ( LIMIT l= limit )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==LIMIT) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// PhoenixSQL.g:571:10: LIMIT l= limit
{
match(input,LIMIT,FOLLOW_LIMIT_in_select_node3298); if (state.failed) return ret;
pushFollow(FOLLOW_limit_in_select_node3302);
l=limit();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ParseContext context = contextStack.peek(); ret = factory.select(from, null, d!=null, sel, where, group, having, order, l, getBindCount(), context.isAggregate(), context.hasSequences()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
contextStack.pop();
}
return ret;
}
// $ANTLR end "select_node"
// $ANTLR start "hinted_select_node"
// PhoenixSQL.g:577:1: hinted_select_node returns [SelectStatement ret] : (hint= hintClause )? s= select_node ;
public final SelectStatement hinted_select_node() throws RecognitionException {
SelectStatement ret = null;
HintNode hint =null;
SelectStatement s =null;
try {
// PhoenixSQL.g:578:5: ( (hint= hintClause )? s= select_node )
// PhoenixSQL.g:578:9: (hint= hintClause )? s= select_node
{
// PhoenixSQL.g:578:9: (hint= hintClause )?
int alt78=2;
int LA78_0 = input.LA(1);
if ( (LA78_0==ML_HINT) ) {
alt78=1;
}
switch (alt78) {
case 1 :
// PhoenixSQL.g:578:10: hint= hintClause
{
pushFollow(FOLLOW_hintClause_in_hinted_select_node3344);
hint=hintClause();
state._fsp--;
if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_select_node_in_hinted_select_node3359);
s=select_node();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.select(s, hint); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "hinted_select_node"
// $ANTLR start "upsert_node"
// PhoenixSQL.g:584:1: upsert_node returns [UpsertStatement ret] : UPSERT (hint= hintClause )? INTO t= from_table_name ( LPAREN p= upsert_column_refs RPAREN )? ( ( VALUES LPAREN v= one_or_more_expressions RPAREN ) |s= select_expression ) ;
public final UpsertStatement upsert_node() throws RecognitionException {
UpsertStatement ret = null;
HintNode hint =null;
TableName t =null;
Pair,List> p =null;
List v =null;
SelectStatement s =null;
try {
// PhoenixSQL.g:585:5: ( UPSERT (hint= hintClause )? INTO t= from_table_name ( LPAREN p= upsert_column_refs RPAREN )? ( ( VALUES LPAREN v= one_or_more_expressions RPAREN ) |s= select_expression ) )
// PhoenixSQL.g:585:9: UPSERT (hint= hintClause )? INTO t= from_table_name ( LPAREN p= upsert_column_refs RPAREN )? ( ( VALUES LPAREN v= one_or_more_expressions RPAREN ) |s= select_expression )
{
match(input,UPSERT,FOLLOW_UPSERT_in_upsert_node3393); if (state.failed) return ret;
// PhoenixSQL.g:585:16: (hint= hintClause )?
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==ML_HINT) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// PhoenixSQL.g:585:17: hint= hintClause
{
pushFollow(FOLLOW_hintClause_in_upsert_node3398);
hint=hintClause();
state._fsp--;
if (state.failed) return ret;
}
break;
}
match(input,INTO,FOLLOW_INTO_in_upsert_node3402); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_upsert_node3406);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:586:9: ( LPAREN p= upsert_column_refs RPAREN )?
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==LPAREN) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// PhoenixSQL.g:586:10: LPAREN p= upsert_column_refs RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_upsert_node3417); if (state.failed) return ret;
pushFollow(FOLLOW_upsert_column_refs_in_upsert_node3421);
p=upsert_column_refs();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_upsert_node3423); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:587:9: ( ( VALUES LPAREN v= one_or_more_expressions RPAREN ) |s= select_expression )
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==VALUES) ) {
alt81=1;
}
else if ( (LA81_0==SELECT) ) {
alt81=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 81, 0, input);
throw nvae;
}
switch (alt81) {
case 1 :
// PhoenixSQL.g:587:10: ( VALUES LPAREN v= one_or_more_expressions RPAREN )
{
// PhoenixSQL.g:587:10: ( VALUES LPAREN v= one_or_more_expressions RPAREN )
// PhoenixSQL.g:587:11: VALUES LPAREN v= one_or_more_expressions RPAREN
{
match(input,VALUES,FOLLOW_VALUES_in_upsert_node3437); if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_upsert_node3439); if (state.failed) return ret;
pushFollow(FOLLOW_one_or_more_expressions_in_upsert_node3443);
v=one_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_upsert_node3445); if (state.failed) return ret;
}
}
break;
case 2 :
// PhoenixSQL.g:587:61: s= select_expression
{
pushFollow(FOLLOW_select_expression_in_upsert_node3452);
s=select_expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.upsert(factory.namedTable(null,t,p == null ? null : p.getFirst()), hint, p == null ? null : p.getSecond(), v, s, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "upsert_node"
// $ANTLR start "upsert_column_refs"
// PhoenixSQL.g:591:1: upsert_column_refs returns [Pair,List> ret] : d= dyn_column_name_or_def ( COMMA d= dyn_column_name_or_def )* ;
public final Pair,List> upsert_column_refs() throws RecognitionException {
Pair,List> ret = null;
ColumnDef d =null;
ret = new Pair,List>(new ArrayList(), new ArrayList());
try {
// PhoenixSQL.g:593:5: (d= dyn_column_name_or_def ( COMMA d= dyn_column_name_or_def )* )
// PhoenixSQL.g:593:8: d= dyn_column_name_or_def ( COMMA d= dyn_column_name_or_def )*
{
pushFollow(FOLLOW_dyn_column_name_or_def_in_upsert_column_refs3491);
d=dyn_column_name_or_def();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { if (d.getDataType()!=null) { ret.getFirst().add(d); } ret.getSecond().add(d.getColumnDefName()); }
// PhoenixSQL.g:594:8: ( COMMA d= dyn_column_name_or_def )*
loop82:
while (true) {
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==COMMA) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// PhoenixSQL.g:594:9: COMMA d= dyn_column_name_or_def
{
match(input,COMMA,FOLLOW_COMMA_in_upsert_column_refs3504); if (state.failed) return ret;
pushFollow(FOLLOW_dyn_column_name_or_def_in_upsert_column_refs3508);
d=dyn_column_name_or_def();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { if (d.getDataType()!=null) { ret.getFirst().add(d); } ret.getSecond().add(d.getColumnDefName()); }
}
break;
default :
break loop82;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "upsert_column_refs"
// $ANTLR start "delete_node"
// PhoenixSQL.g:598:1: delete_node returns [DeleteStatement ret] : DELETE (hint= hintClause )? FROM t= from_table_name ( WHERE v= expression )? ( ORDER BY order= order_by )? ( LIMIT l= limit )? ;
public final DeleteStatement delete_node() throws RecognitionException {
DeleteStatement ret = null;
HintNode hint =null;
TableName t =null;
ParseNode v =null;
List order =null;
LimitNode l =null;
try {
// PhoenixSQL.g:599:5: ( DELETE (hint= hintClause )? FROM t= from_table_name ( WHERE v= expression )? ( ORDER BY order= order_by )? ( LIMIT l= limit )? )
// PhoenixSQL.g:599:9: DELETE (hint= hintClause )? FROM t= from_table_name ( WHERE v= expression )? ( ORDER BY order= order_by )? ( LIMIT l= limit )?
{
match(input,DELETE,FOLLOW_DELETE_in_delete_node3534); if (state.failed) return ret;
// PhoenixSQL.g:599:16: (hint= hintClause )?
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==ML_HINT) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// PhoenixSQL.g:599:17: hint= hintClause
{
pushFollow(FOLLOW_hintClause_in_delete_node3539);
hint=hintClause();
state._fsp--;
if (state.failed) return ret;
}
break;
}
match(input,FROM,FOLLOW_FROM_in_delete_node3543); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_delete_node3547);
t=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:600:9: ( WHERE v= expression )?
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==WHERE) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// PhoenixSQL.g:600:10: WHERE v= expression
{
match(input,WHERE,FOLLOW_WHERE_in_delete_node3558); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_delete_node3562);
v=expression();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:601:9: ( ORDER BY order= order_by )?
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==ORDER) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// PhoenixSQL.g:601:10: ORDER BY order= order_by
{
match(input,ORDER,FOLLOW_ORDER_in_delete_node3575); if (state.failed) return ret;
match(input,BY,FOLLOW_BY_in_delete_node3577); if (state.failed) return ret;
pushFollow(FOLLOW_order_by_in_delete_node3581);
order=order_by();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:602:9: ( LIMIT l= limit )?
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==LIMIT) ) {
alt86=1;
}
switch (alt86) {
case 1 :
// PhoenixSQL.g:602:10: LIMIT l= limit
{
match(input,LIMIT,FOLLOW_LIMIT_in_delete_node3594); if (state.failed) return ret;
pushFollow(FOLLOW_limit_in_delete_node3598);
l=limit();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {ret = factory.delete(factory.namedTable(null,t), hint, v, order, l, getBindCount()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "delete_node"
// $ANTLR start "limit"
// PhoenixSQL.g:606:1: limit returns [LimitNode ret] : (b= bind_expression |l= int_literal );
public final LimitNode limit() throws RecognitionException {
LimitNode ret = null;
BindParseNode b =null;
LiteralParseNode l =null;
try {
// PhoenixSQL.g:607:5: (b= bind_expression |l= int_literal )
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==BIND_NAME||LA87_0==QUESTION) ) {
alt87=1;
}
else if ( (LA87_0==NUMBER) ) {
alt87=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 87, 0, input);
throw nvae;
}
switch (alt87) {
case 1 :
// PhoenixSQL.g:607:7: b= bind_expression
{
pushFollow(FOLLOW_bind_expression_in_limit3633);
b=bind_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.limit(b); }
}
break;
case 2 :
// PhoenixSQL.g:608:7: l= int_literal
{
pushFollow(FOLLOW_int_literal_in_limit3645);
l=int_literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.limit(l); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "limit"
// $ANTLR start "hintClause"
// PhoenixSQL.g:611:1: hintClause returns [HintNode ret] : c= ML_HINT ;
public final HintNode hintClause() throws RecognitionException {
HintNode ret = null;
Token c=null;
try {
// PhoenixSQL.g:612:5: (c= ML_HINT )
// PhoenixSQL.g:612:8: c= ML_HINT
{
c=(Token)match(input,ML_HINT,FOLLOW_ML_HINT_in_hintClause3675); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.hint(c.getText()); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "hintClause"
// $ANTLR start "select_list"
// PhoenixSQL.g:616:1: select_list returns [List ret] : (n= selectable ( COMMA n= selectable )* | ASTERISK );
public final List select_list() throws RecognitionException {
List ret = null;
AliasedNode n =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:618:5: (n= selectable ( COMMA n= selectable )* | ASTERISK )
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==ARRAY||LA89_0==BIND_NAME||(LA89_0 >= CASE && LA89_0 <= CAST)||LA89_0==CURRENT||LA89_0==DECIMAL||LA89_0==DOUBLE||LA89_0==EXISTS||LA89_0==FALSE||(LA89_0 >= LONG && LA89_0 <= LPAREN)||LA89_0==MINUS||(LA89_0 >= NAME && LA89_0 <= NEXT)||(LA89_0 >= NOT && LA89_0 <= NULL)||LA89_0==NUMBER||LA89_0==QUESTION||LA89_0==STRING_LITERAL||LA89_0==TRUE) ) {
alt89=1;
}
else if ( (LA89_0==ASTERISK) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 89, 0, input);
throw nvae;
}
switch (alt89) {
case 1 :
// PhoenixSQL.g:618:9: n= selectable ( COMMA n= selectable )*
{
pushFollow(FOLLOW_selectable_in_select_list3707);
n=selectable();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(n);}
// PhoenixSQL.g:618:36: ( COMMA n= selectable )*
loop88:
while (true) {
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==COMMA) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// PhoenixSQL.g:618:37: COMMA n= selectable
{
match(input,COMMA,FOLLOW_COMMA_in_select_list3712); if (state.failed) return ret;
pushFollow(FOLLOW_selectable_in_select_list3716);
n=selectable();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(n);}
}
break;
default :
break loop88;
}
}
}
break;
case 2 :
// PhoenixSQL.g:619:7: ASTERISK
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_select_list3728); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = Collections.singletonList(factory.aliasedNode(null, factory.wildcard()));}
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "select_list"
// $ANTLR start "selectable"
// PhoenixSQL.g:623:1: selectable returns [AliasedNode ret] : (field= expression (a= parseAlias )? |familyName= identifier DOT ASTERISK |s= identifier DOT t= identifier DOT ASTERISK );
public final AliasedNode selectable() throws RecognitionException {
AliasedNode ret = null;
ParseNode field =null;
String a =null;
String familyName =null;
String s =null;
String t =null;
try {
// PhoenixSQL.g:624:5: (field= expression (a= parseAlias )? |familyName= identifier DOT ASTERISK |s= identifier DOT t= identifier DOT ASTERISK )
int alt91=3;
int LA91_0 = input.LA(1);
if ( (LA91_0==ARRAY||LA91_0==BIND_NAME||(LA91_0 >= CASE && LA91_0 <= CAST)||LA91_0==CURRENT||LA91_0==DECIMAL||LA91_0==DOUBLE||LA91_0==EXISTS||LA91_0==FALSE||(LA91_0 >= LONG && LA91_0 <= LPAREN)||LA91_0==MINUS||LA91_0==NEXT||(LA91_0 >= NOT && LA91_0 <= NULL)||LA91_0==NUMBER||LA91_0==QUESTION||LA91_0==STRING_LITERAL||LA91_0==TRUE) ) {
alt91=1;
}
else if ( (LA91_0==NAME) ) {
int LA91_2 = input.LA(2);
if ( (LA91_2==AND||LA91_2==AS||LA91_2==ASTERISK||LA91_2==BETWEEN||LA91_2==COMMA||LA91_2==CONCAT||LA91_2==DIVIDE||LA91_2==EQ||LA91_2==FROM||LA91_2==GT||(LA91_2 >= ILIKE && LA91_2 <= IN)||LA91_2==IS||LA91_2==LIKE||(LA91_2 >= LPAREN && LA91_2 <= LT)||LA91_2==MINUS||LA91_2==NAME||(LA91_2 >= NOEQ1 && LA91_2 <= NOT)||LA91_2==OR||(LA91_2 >= PERCENT && LA91_2 <= PLUS)) ) {
alt91=1;
}
else if ( (LA91_2==DOT) ) {
int LA91_3 = input.LA(3);
if ( (LA91_3==ASTERISK) ) {
alt91=2;
}
else if ( (LA91_3==NAME) ) {
int LA91_5 = input.LA(4);
if ( (LA91_5==AND||LA91_5==AS||LA91_5==ASTERISK||LA91_5==BETWEEN||LA91_5==COMMA||LA91_5==CONCAT||LA91_5==DIVIDE||LA91_5==EQ||LA91_5==FROM||LA91_5==GT||(LA91_5 >= ILIKE && LA91_5 <= IN)||LA91_5==IS||LA91_5==LIKE||(LA91_5 >= LSQUARE && LA91_5 <= LT)||LA91_5==MINUS||LA91_5==NAME||(LA91_5 >= NOEQ1 && LA91_5 <= NOT)||LA91_5==OR||(LA91_5 >= PERCENT && LA91_5 <= PLUS)) ) {
alt91=1;
}
else if ( (LA91_5==DOT) ) {
int LA91_6 = input.LA(5);
if ( (LA91_6==ASTERISK) ) {
alt91=3;
}
else if ( (LA91_6==NAME) ) {
alt91=1;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 91, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 91, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 91, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// PhoenixSQL.g:624:9: field= expression (a= parseAlias )?
{
pushFollow(FOLLOW_expression_in_selectable3757);
field=expression();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:624:26: (a= parseAlias )?
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==AS||LA90_0==NAME) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// PhoenixSQL.g:624:27: a= parseAlias
{
pushFollow(FOLLOW_parseAlias_in_selectable3762);
a=parseAlias();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = factory.aliasedNode(a, field); }
}
break;
case 2 :
// PhoenixSQL.g:625:8: familyName= identifier DOT ASTERISK
{
pushFollow(FOLLOW_identifier_in_selectable3777);
familyName=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_selectable3779); if (state.failed) return ret;
match(input,ASTERISK,FOLLOW_ASTERISK_in_selectable3781); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.aliasedNode(null, factory.family(familyName));}
}
break;
case 3 :
// PhoenixSQL.g:626:9: s= identifier DOT t= identifier DOT ASTERISK
{
pushFollow(FOLLOW_identifier_in_selectable3796);
s=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_selectable3798); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_selectable3802);
t=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_selectable3804); if (state.failed) return ret;
match(input,ASTERISK,FOLLOW_ASTERISK_in_selectable3806); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.aliasedNode(null, factory.tableWildcard(factory.table(s, t))); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "selectable"
// $ANTLR start "group_by"
// PhoenixSQL.g:631:1: group_by returns [List ret] : expr= expression ( COMMA expr= expression )* ;
public final List group_by() throws RecognitionException {
List ret = null;
ParseNode expr =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:633:5: (expr= expression ( COMMA expr= expression )* )
// PhoenixSQL.g:633:9: expr= expression ( COMMA expr= expression )*
{
pushFollow(FOLLOW_expression_in_group_by3839);
expr=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret.add(expr); }
// PhoenixSQL.g:634:9: ( COMMA expr= expression )*
loop92:
while (true) {
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==COMMA) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// PhoenixSQL.g:634:10: COMMA expr= expression
{
match(input,COMMA,FOLLOW_COMMA_in_group_by3852); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_group_by3858);
expr=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(expr); }
}
break;
default :
break loop92;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "group_by"
// $ANTLR start "order_by"
// PhoenixSQL.g:638:1: order_by returns [List ret] : field= parseOrderByField ( COMMA field= parseOrderByField )* ;
public final List order_by() throws RecognitionException {
List ret = null;
OrderByNode field =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:640:5: (field= parseOrderByField ( COMMA field= parseOrderByField )* )
// PhoenixSQL.g:640:9: field= parseOrderByField ( COMMA field= parseOrderByField )*
{
pushFollow(FOLLOW_parseOrderByField_in_order_by3892);
field=parseOrderByField();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret.add(field); }
// PhoenixSQL.g:641:9: ( COMMA field= parseOrderByField )*
loop93:
while (true) {
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==COMMA) ) {
alt93=1;
}
switch (alt93) {
case 1 :
// PhoenixSQL.g:641:10: COMMA field= parseOrderByField
{
match(input,COMMA,FOLLOW_COMMA_in_order_by3905); if (state.failed) return ret;
pushFollow(FOLLOW_parseOrderByField_in_order_by3911);
field=parseOrderByField();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(field); }
}
break;
default :
break loop93;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "order_by"
// $ANTLR start "parseOrderByField"
// PhoenixSQL.g:645:1: parseOrderByField returns [OrderByNode ret] : (expr= expression ) ( ASC | DESC )? ( NULLS ( FIRST | LAST ) )? ;
public final OrderByNode parseOrderByField() throws RecognitionException {
OrderByNode ret = null;
ParseNode expr =null;
boolean isAscending = true; boolean nullsLast = false;
try {
// PhoenixSQL.g:647:5: ( (expr= expression ) ( ASC | DESC )? ( NULLS ( FIRST | LAST ) )? )
// PhoenixSQL.g:647:9: (expr= expression ) ( ASC | DESC )? ( NULLS ( FIRST | LAST ) )?
{
// PhoenixSQL.g:647:9: (expr= expression )
// PhoenixSQL.g:647:10: expr= expression
{
pushFollow(FOLLOW_expression_in_parseOrderByField3948);
expr=expression();
state._fsp--;
if (state.failed) return ret;
}
// PhoenixSQL.g:648:9: ( ASC | DESC )?
int alt94=3;
int LA94_0 = input.LA(1);
if ( (LA94_0==ASC) ) {
alt94=1;
}
else if ( (LA94_0==DESC) ) {
alt94=2;
}
switch (alt94) {
case 1 :
// PhoenixSQL.g:648:10: ASC
{
match(input,ASC,FOLLOW_ASC_in_parseOrderByField3960); if (state.failed) return ret;
if ( state.backtracking==0 ) {isAscending = true;}
}
break;
case 2 :
// PhoenixSQL.g:648:38: DESC
{
match(input,DESC,FOLLOW_DESC_in_parseOrderByField3966); if (state.failed) return ret;
if ( state.backtracking==0 ) {isAscending = false;}
}
break;
}
// PhoenixSQL.g:649:9: ( NULLS ( FIRST | LAST ) )?
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==NULLS) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// PhoenixSQL.g:649:10: NULLS ( FIRST | LAST )
{
match(input,NULLS,FOLLOW_NULLS_in_parseOrderByField3981); if (state.failed) return ret;
// PhoenixSQL.g:649:16: ( FIRST | LAST )
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==FIRST) ) {
alt95=1;
}
else if ( (LA95_0==LAST) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 95, 0, input);
throw nvae;
}
switch (alt95) {
case 1 :
// PhoenixSQL.g:649:17: FIRST
{
match(input,FIRST,FOLLOW_FIRST_in_parseOrderByField3984); if (state.failed) return ret;
if ( state.backtracking==0 ) {nullsLast = false;}
}
break;
case 2 :
// PhoenixSQL.g:649:46: LAST
{
match(input,LAST,FOLLOW_LAST_in_parseOrderByField3990); if (state.failed) return ret;
if ( state.backtracking==0 ) {nullsLast = true;}
}
break;
}
}
break;
}
if ( state.backtracking==0 ) { ret = factory.orderBy(expr, nullsLast, isAscending); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "parseOrderByField"
// $ANTLR start "parseFrom"
// PhoenixSQL.g:653:1: parseFrom returns [TableNode ret] : t= table_list ;
public final TableNode parseFrom() throws RecognitionException {
TableNode ret = null;
TableNode t =null;
try {
// PhoenixSQL.g:654:5: (t= table_list )
// PhoenixSQL.g:654:9: t= table_list
{
pushFollow(FOLLOW_table_list_in_parseFrom4030);
t=table_list();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = t;}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "parseFrom"
// $ANTLR start "table_list"
// PhoenixSQL.g:657:1: table_list returns [TableNode ret] : t= table_ref ( COMMA s= table_ref )* ;
public final TableNode table_list() throws RecognitionException {
TableNode ret = null;
TableNode t =null;
TableNode s =null;
try {
// PhoenixSQL.g:658:5: (t= table_ref ( COMMA s= table_ref )* )
// PhoenixSQL.g:658:9: t= table_ref ( COMMA s= table_ref )*
{
pushFollow(FOLLOW_table_ref_in_table_list4061);
t=table_ref();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = t;}
// PhoenixSQL.g:658:33: ( COMMA s= table_ref )*
loop97:
while (true) {
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==COMMA) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// PhoenixSQL.g:658:34: COMMA s= table_ref
{
match(input,COMMA,FOLLOW_COMMA_in_table_list4066); if (state.failed) return ret;
pushFollow(FOLLOW_table_ref_in_table_list4070);
s=table_ref();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.join(JoinTableNode.JoinType.Inner, ret, s, null, false); }
}
break;
default :
break loop97;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "table_list"
// $ANTLR start "table_ref"
// PhoenixSQL.g:661:1: table_ref returns [TableNode ret] : l= table_factor (j= join_type JOIN r= table_factor ON e= expression )* ;
public final TableNode table_ref() throws RecognitionException {
TableNode ret = null;
TableNode l =null;
JoinTableNode.JoinType j =null;
TableNode r =null;
ParseNode e =null;
try {
// PhoenixSQL.g:662:2: (l= table_factor (j= join_type JOIN r= table_factor ON e= expression )* )
// PhoenixSQL.g:662:4: l= table_factor (j= join_type JOIN r= table_factor ON e= expression )*
{
pushFollow(FOLLOW_table_factor_in_table_ref4094);
l=table_factor();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = l; }
// PhoenixSQL.g:662:33: (j= join_type JOIN r= table_factor ON e= expression )*
loop98:
while (true) {
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==FULL||LA98_0==INNER||LA98_0==JOIN||LA98_0==LEFT||LA98_0==RIGHT) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// PhoenixSQL.g:662:34: j= join_type JOIN r= table_factor ON e= expression
{
pushFollow(FOLLOW_join_type_in_table_ref4101);
j=join_type();
state._fsp--;
if (state.failed) return ret;
match(input,JOIN,FOLLOW_JOIN_in_table_ref4103); if (state.failed) return ret;
pushFollow(FOLLOW_table_factor_in_table_ref4107);
r=table_factor();
state._fsp--;
if (state.failed) return ret;
match(input,ON,FOLLOW_ON_in_table_ref4109); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_table_ref4113);
e=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.join(j, ret, r, e, false); }
}
break;
default :
break loop98;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "table_ref"
// $ANTLR start "table_factor"
// PhoenixSQL.g:665:1: table_factor returns [TableNode ret] : ( LPAREN t= table_list RPAREN |n= bind_name ( ( AS )? alias= identifier )? |f= from_table_name ( ( AS )? alias= identifier )? ( LPAREN cdefs= dyn_column_defs RPAREN )? | LPAREN SELECT s= hinted_select_node RPAREN ( ( AS )? alias= identifier )? );
public final TableNode table_factor() throws RecognitionException {
TableNode ret = null;
TableNode t =null;
String n =null;
String alias =null;
TableName f =null;
List cdefs =null;
SelectStatement s =null;
try {
// PhoenixSQL.g:666:5: ( LPAREN t= table_list RPAREN |n= bind_name ( ( AS )? alias= identifier )? |f= from_table_name ( ( AS )? alias= identifier )? ( LPAREN cdefs= dyn_column_defs RPAREN )? | LPAREN SELECT s= hinted_select_node RPAREN ( ( AS )? alias= identifier )? )
int alt106=4;
switch ( input.LA(1) ) {
case LPAREN:
{
int LA106_1 = input.LA(2);
if ( (LA106_1==SELECT) ) {
alt106=4;
}
else if ( (LA106_1==BIND_NAME||LA106_1==LPAREN||LA106_1==NAME||LA106_1==QUESTION) ) {
alt106=1;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 106, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case BIND_NAME:
case QUESTION:
{
alt106=2;
}
break;
case NAME:
{
alt106=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 106, 0, input);
throw nvae;
}
switch (alt106) {
case 1 :
// PhoenixSQL.g:666:9: LPAREN t= table_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_table_factor4137); if (state.failed) return ret;
pushFollow(FOLLOW_table_list_in_table_factor4141);
t=table_list();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_table_factor4143); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = t; }
}
break;
case 2 :
// PhoenixSQL.g:667:9: n= bind_name ( ( AS )? alias= identifier )?
{
pushFollow(FOLLOW_bind_name_in_table_factor4157);
n=bind_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:667:21: ( ( AS )? alias= identifier )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==AS||LA100_0==NAME) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// PhoenixSQL.g:667:22: ( AS )? alias= identifier
{
// PhoenixSQL.g:667:22: ( AS )?
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==AS) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// PhoenixSQL.g:667:23: AS
{
match(input,AS,FOLLOW_AS_in_table_factor4161); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_identifier_in_table_factor4167);
alias=identifier();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = factory.bindTable(alias, factory.table(null,n)); }
}
break;
case 3 :
// PhoenixSQL.g:668:9: f= from_table_name ( ( AS )? alias= identifier )? ( LPAREN cdefs= dyn_column_defs RPAREN )?
{
pushFollow(FOLLOW_from_table_name_in_table_factor4184);
f=from_table_name();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:668:27: ( ( AS )? alias= identifier )?
int alt102=2;
int LA102_0 = input.LA(1);
if ( (LA102_0==AS||LA102_0==NAME) ) {
alt102=1;
}
switch (alt102) {
case 1 :
// PhoenixSQL.g:668:28: ( AS )? alias= identifier
{
// PhoenixSQL.g:668:28: ( AS )?
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==AS) ) {
alt101=1;
}
switch (alt101) {
case 1 :
// PhoenixSQL.g:668:29: AS
{
match(input,AS,FOLLOW_AS_in_table_factor4188); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_identifier_in_table_factor4194);
alias=identifier();
state._fsp--;
if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:668:53: ( LPAREN cdefs= dyn_column_defs RPAREN )?
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==LPAREN) ) {
alt103=1;
}
switch (alt103) {
case 1 :
// PhoenixSQL.g:668:54: LPAREN cdefs= dyn_column_defs RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_table_factor4199); if (state.failed) return ret;
pushFollow(FOLLOW_dyn_column_defs_in_table_factor4203);
cdefs=dyn_column_defs();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_table_factor4205); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = factory.namedTable(alias,f,cdefs); }
}
break;
case 4 :
// PhoenixSQL.g:669:9: LPAREN SELECT s= hinted_select_node RPAREN ( ( AS )? alias= identifier )?
{
match(input,LPAREN,FOLLOW_LPAREN_in_table_factor4219); if (state.failed) return ret;
match(input,SELECT,FOLLOW_SELECT_in_table_factor4221); if (state.failed) return ret;
pushFollow(FOLLOW_hinted_select_node_in_table_factor4225);
s=hinted_select_node();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_table_factor4227); if (state.failed) return ret;
// PhoenixSQL.g:669:51: ( ( AS )? alias= identifier )?
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==AS||LA105_0==NAME) ) {
alt105=1;
}
switch (alt105) {
case 1 :
// PhoenixSQL.g:669:52: ( AS )? alias= identifier
{
// PhoenixSQL.g:669:52: ( AS )?
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==AS) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// PhoenixSQL.g:669:53: AS
{
match(input,AS,FOLLOW_AS_in_table_factor4231); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_identifier_in_table_factor4237);
alias=identifier();
state._fsp--;
if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = factory.derivedTable(alias, s); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "table_factor"
// $ANTLR start "join_type"
// PhoenixSQL.g:672:1: join_type returns [JoinTableNode.JoinType ret] : ( ( INNER )? | LEFT ( OUTER )? | RIGHT ( OUTER )? | FULL ( OUTER )? );
public final JoinTableNode.JoinType join_type() throws RecognitionException {
JoinTableNode.JoinType ret = null;
try {
// PhoenixSQL.g:673:5: ( ( INNER )? | LEFT ( OUTER )? | RIGHT ( OUTER )? | FULL ( OUTER )? )
int alt111=4;
switch ( input.LA(1) ) {
case INNER:
case JOIN:
{
alt111=1;
}
break;
case LEFT:
{
alt111=2;
}
break;
case RIGHT:
{
alt111=3;
}
break;
case FULL:
{
alt111=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 111, 0, input);
throw nvae;
}
switch (alt111) {
case 1 :
// PhoenixSQL.g:673:9: ( INNER )?
{
// PhoenixSQL.g:673:9: ( INNER )?
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==INNER) ) {
alt107=1;
}
switch (alt107) {
case 1 :
// PhoenixSQL.g:673:9: INNER
{
match(input,INNER,FOLLOW_INNER_in_join_type4264); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = JoinTableNode.JoinType.Inner; }
}
break;
case 2 :
// PhoenixSQL.g:674:9: LEFT ( OUTER )?
{
match(input,LEFT,FOLLOW_LEFT_in_join_type4279); if (state.failed) return ret;
// PhoenixSQL.g:674:14: ( OUTER )?
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==OUTER) ) {
alt108=1;
}
switch (alt108) {
case 1 :
// PhoenixSQL.g:674:14: OUTER
{
match(input,OUTER,FOLLOW_OUTER_in_join_type4281); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = JoinTableNode.JoinType.Left; }
}
break;
case 3 :
// PhoenixSQL.g:675:9: RIGHT ( OUTER )?
{
match(input,RIGHT,FOLLOW_RIGHT_in_join_type4296); if (state.failed) return ret;
// PhoenixSQL.g:675:15: ( OUTER )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==OUTER) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// PhoenixSQL.g:675:15: OUTER
{
match(input,OUTER,FOLLOW_OUTER_in_join_type4298); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = JoinTableNode.JoinType.Right; }
}
break;
case 4 :
// PhoenixSQL.g:676:9: FULL ( OUTER )?
{
match(input,FULL,FOLLOW_FULL_in_join_type4312); if (state.failed) return ret;
// PhoenixSQL.g:676:15: ( OUTER )?
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==OUTER) ) {
alt110=1;
}
switch (alt110) {
case 1 :
// PhoenixSQL.g:676:15: OUTER
{
match(input,OUTER,FOLLOW_OUTER_in_join_type4315); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { ret = JoinTableNode.JoinType.Full; }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "join_type"
// $ANTLR start "parseAlias"
// PhoenixSQL.g:679:1: parseAlias returns [String ret] : ( AS )? alias= parseNoReserved ;
public final String parseAlias() throws RecognitionException {
String ret = null;
String alias =null;
try {
// PhoenixSQL.g:680:5: ( ( AS )? alias= parseNoReserved )
// PhoenixSQL.g:680:9: ( AS )? alias= parseNoReserved
{
// PhoenixSQL.g:680:9: ( AS )?
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==AS) ) {
alt112=1;
}
switch (alt112) {
case 1 :
// PhoenixSQL.g:680:9: AS
{
match(input,AS,FOLLOW_AS_in_parseAlias4346); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_parseNoReserved_in_parseAlias4351);
alias=parseNoReserved();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = alias; }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "parseAlias"
// $ANTLR start "expression"
// PhoenixSQL.g:684:1: expression returns [ParseNode ret] : e= or_expression ;
public final ParseNode expression() throws RecognitionException {
ParseNode ret = null;
ParseNode e =null;
try {
// PhoenixSQL.g:685:5: (e= or_expression )
// PhoenixSQL.g:685:9: e= or_expression
{
pushFollow(FOLLOW_or_expression_in_expression4379);
e=or_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = e; }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "expression"
// $ANTLR start "or_expression"
// PhoenixSQL.g:689:1: or_expression returns [ParseNode ret] : i= and_expression ( OR i= and_expression )* ;
public final ParseNode or_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode i =null;
List l = new ArrayList(4);
try {
// PhoenixSQL.g:691:5: (i= and_expression ( OR i= and_expression )* )
// PhoenixSQL.g:691:9: i= and_expression ( OR i= and_expression )*
{
pushFollow(FOLLOW_and_expression_in_or_expression4411);
i=and_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
// PhoenixSQL.g:691:38: ( OR i= and_expression )*
loop113:
while (true) {
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==OR) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// PhoenixSQL.g:691:39: OR i= and_expression
{
match(input,OR,FOLLOW_OR_in_or_expression4416); if (state.failed) return ret;
pushFollow(FOLLOW_and_expression_in_or_expression4420);
i=and_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
}
break;
default :
break loop113;
}
}
if ( state.backtracking==0 ) { ret = l.size() == 1 ? l.get(0) : factory.or(l); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "or_expression"
// $ANTLR start "and_expression"
// PhoenixSQL.g:695:1: and_expression returns [ParseNode ret] : i= not_expression ( AND i= not_expression )* ;
public final ParseNode and_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode i =null;
List l = new ArrayList(4);
try {
// PhoenixSQL.g:697:5: (i= not_expression ( AND i= not_expression )* )
// PhoenixSQL.g:697:9: i= not_expression ( AND i= not_expression )*
{
pushFollow(FOLLOW_not_expression_in_and_expression4456);
i=not_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
// PhoenixSQL.g:697:38: ( AND i= not_expression )*
loop114:
while (true) {
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==AND) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// PhoenixSQL.g:697:39: AND i= not_expression
{
match(input,AND,FOLLOW_AND_in_and_expression4461); if (state.failed) return ret;
pushFollow(FOLLOW_not_expression_in_and_expression4465);
i=not_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
}
break;
default :
break loop114;
}
}
if ( state.backtracking==0 ) { ret = l.size() == 1 ? l.get(0) : factory.and(l); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "and_expression"
// $ANTLR start "not_expression"
// PhoenixSQL.g:701:1: not_expression returns [ParseNode ret] : ( ( ( NOT )? boolean_expression )=> (n= NOT )? e= boolean_expression | (n= NOT )? LPAREN e= expression RPAREN );
public final ParseNode not_expression() throws RecognitionException {
ParseNode ret = null;
Token n=null;
ParseNode e =null;
try {
// PhoenixSQL.g:702:5: ( ( ( NOT )? boolean_expression )=> (n= NOT )? e= boolean_expression | (n= NOT )? LPAREN e= expression RPAREN )
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==NOT) ) {
int LA117_1 = input.LA(2);
if ( (synpred1_PhoenixSQL()) ) {
alt117=1;
}
else if ( (true) ) {
alt117=2;
}
}
else if ( (LA117_0==MINUS) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==STRING_LITERAL) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==NUMBER) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==LONG) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==DOUBLE) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==DECIMAL) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==NULL) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==TRUE) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==FALSE) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==BIND_NAME) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==QUESTION) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==NAME) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==ARRAY) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==CASE) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==LPAREN) ) {
int LA117_16 = input.LA(2);
if ( (synpred1_PhoenixSQL()) ) {
alt117=1;
}
else if ( (true) ) {
alt117=2;
}
}
else if ( (LA117_0==CAST) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==NEXT) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==CURRENT) && (synpred1_PhoenixSQL())) {
alt117=1;
}
else if ( (LA117_0==EXISTS) && (synpred1_PhoenixSQL())) {
alt117=1;
}
switch (alt117) {
case 1 :
// PhoenixSQL.g:702:9: ( ( NOT )? boolean_expression )=> (n= NOT )? e= boolean_expression
{
// PhoenixSQL.g:702:40: (n= NOT )?
int alt115=2;
int LA115_0 = input.LA(1);
if ( (LA115_0==NOT) ) {
alt115=1;
}
switch (alt115) {
case 1 :
// PhoenixSQL.g:702:40: n= NOT
{
n=(Token)match(input,NOT,FOLLOW_NOT_in_not_expression4507); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_boolean_expression_in_not_expression4512);
e=boolean_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = n == null ? e : factory.not(e); }
}
break;
case 2 :
// PhoenixSQL.g:703:9: (n= NOT )? LPAREN e= expression RPAREN
{
// PhoenixSQL.g:703:10: (n= NOT )?
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==NOT) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// PhoenixSQL.g:703:10: n= NOT
{
n=(Token)match(input,NOT,FOLLOW_NOT_in_not_expression4526); if (state.failed) return ret;
}
break;
}
match(input,LPAREN,FOLLOW_LPAREN_in_not_expression4529); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_not_expression4533);
e=expression();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_not_expression4535); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = n == null ? e : factory.not(e); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "not_expression"
// $ANTLR start "comparison_op"
// PhoenixSQL.g:706:1: comparison_op returns [CompareOp ret] : ( EQ | LT | GT | LT EQ | GT EQ | ( NOEQ1 | NOEQ2 ) );
public final CompareOp comparison_op() throws RecognitionException {
CompareOp ret = null;
try {
// PhoenixSQL.g:707:2: ( EQ | LT | GT | LT EQ | GT EQ | ( NOEQ1 | NOEQ2 ) )
int alt118=6;
switch ( input.LA(1) ) {
case EQ:
{
alt118=1;
}
break;
case LT:
{
int LA118_2 = input.LA(2);
if ( (LA118_2==EQ) ) {
alt118=4;
}
else if ( (LA118_2==ALL||(LA118_2 >= ANY && LA118_2 <= ARRAY)||LA118_2==BIND_NAME||(LA118_2 >= CASE && LA118_2 <= CAST)||LA118_2==CURRENT||LA118_2==DECIMAL||LA118_2==DOUBLE||LA118_2==FALSE||(LA118_2 >= LONG && LA118_2 <= LPAREN)||LA118_2==MINUS||(LA118_2 >= NAME && LA118_2 <= NEXT)||LA118_2==NULL||LA118_2==NUMBER||LA118_2==QUESTION||LA118_2==STRING_LITERAL||LA118_2==TRUE) ) {
alt118=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 118, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GT:
{
int LA118_3 = input.LA(2);
if ( (LA118_3==EQ) ) {
alt118=5;
}
else if ( (LA118_3==ALL||(LA118_3 >= ANY && LA118_3 <= ARRAY)||LA118_3==BIND_NAME||(LA118_3 >= CASE && LA118_3 <= CAST)||LA118_3==CURRENT||LA118_3==DECIMAL||LA118_3==DOUBLE||LA118_3==FALSE||(LA118_3 >= LONG && LA118_3 <= LPAREN)||LA118_3==MINUS||(LA118_3 >= NAME && LA118_3 <= NEXT)||LA118_3==NULL||LA118_3==NUMBER||LA118_3==QUESTION||LA118_3==STRING_LITERAL||LA118_3==TRUE) ) {
alt118=3;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 118, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case NOEQ1:
case NOEQ2:
{
alt118=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 118, 0, input);
throw nvae;
}
switch (alt118) {
case 1 :
// PhoenixSQL.g:707:4: EQ
{
match(input,EQ,FOLLOW_EQ_in_comparison_op4555); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = CompareOp.EQUAL; }
}
break;
case 2 :
// PhoenixSQL.g:708:4: LT
{
match(input,LT,FOLLOW_LT_in_comparison_op4562); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = CompareOp.LESS; }
}
break;
case 3 :
// PhoenixSQL.g:709:4: GT
{
match(input,GT,FOLLOW_GT_in_comparison_op4569); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = CompareOp.GREATER; }
}
break;
case 4 :
// PhoenixSQL.g:710:4: LT EQ
{
match(input,LT,FOLLOW_LT_in_comparison_op4576); if (state.failed) return ret;
match(input,EQ,FOLLOW_EQ_in_comparison_op4578); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = CompareOp.LESS_OR_EQUAL; }
}
break;
case 5 :
// PhoenixSQL.g:711:4: GT EQ
{
match(input,GT,FOLLOW_GT_in_comparison_op4585); if (state.failed) return ret;
match(input,EQ,FOLLOW_EQ_in_comparison_op4587); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = CompareOp.GREATER_OR_EQUAL; }
}
break;
case 6 :
// PhoenixSQL.g:712:4: ( NOEQ1 | NOEQ2 )
{
if ( (input.LA(1) >= NOEQ1 && input.LA(1) <= NOEQ2) ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
if ( state.backtracking==0 ) { ret = CompareOp.NOT_EQUAL; }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "comparison_op"
// $ANTLR start "boolean_expression"
// PhoenixSQL.g:715:1: boolean_expression returns [ParseNode ret] : (l= value_expression ( (op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) ) ) | ( IS (n= NOT )? NULL ) | ( (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) ) ) |) | EXISTS LPAREN s= subquery_expression RPAREN );
public final ParseNode boolean_expression() throws RecognitionException {
ParseNode ret = null;
Token all=null;
Token any=null;
Token n=null;
ParseNode l =null;
CompareOp op =null;
ParseNode r =null;
ParseNode r1 =null;
ParseNode r2 =null;
List v =null;
ParseNode s =null;
try {
// PhoenixSQL.g:716:5: (l= value_expression ( (op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) ) ) | ( IS (n= NOT )? NULL ) | ( (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) ) ) |) | EXISTS LPAREN s= subquery_expression RPAREN )
int alt127=2;
int LA127_0 = input.LA(1);
if ( (LA127_0==ARRAY||LA127_0==BIND_NAME||(LA127_0 >= CASE && LA127_0 <= CAST)||LA127_0==CURRENT||LA127_0==DECIMAL||LA127_0==DOUBLE||LA127_0==FALSE||(LA127_0 >= LONG && LA127_0 <= LPAREN)||LA127_0==MINUS||(LA127_0 >= NAME && LA127_0 <= NEXT)||LA127_0==NULL||LA127_0==NUMBER||LA127_0==QUESTION||LA127_0==STRING_LITERAL||LA127_0==TRUE) ) {
alt127=1;
}
else if ( (LA127_0==EXISTS) ) {
alt127=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 127, 0, input);
throw nvae;
}
switch (alt127) {
case 1 :
// PhoenixSQL.g:716:9: l= value_expression ( (op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) ) ) | ( IS (n= NOT )? NULL ) | ( (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) ) ) |)
{
pushFollow(FOLLOW_value_expression_in_boolean_expression4625);
l=value_expression();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:716:28: ( (op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) ) ) | ( IS (n= NOT )? NULL ) | ( (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) ) ) |)
int alt126=4;
switch ( input.LA(1) ) {
case EQ:
case GT:
case LT:
case NOEQ1:
case NOEQ2:
{
alt126=1;
}
break;
case IS:
{
alt126=2;
}
break;
case BETWEEN:
case ILIKE:
case IN:
case LIKE:
case NOT:
{
alt126=3;
}
break;
case EOF:
case AND:
case AS:
case ASC:
case COMMA:
case DESC:
case ELSE:
case END:
case FROM:
case FULL:
case GROUP:
case HAVING:
case INNER:
case JOIN:
case LEFT:
case LIMIT:
case NAME:
case NULLS:
case OR:
case ORDER:
case RIGHT:
case RPAREN:
case RSQUARE:
case SEMICOLON:
case THEN:
case WHEN:
case WHERE:
{
alt126=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 126, 0, input);
throw nvae;
}
switch (alt126) {
case 1 :
// PhoenixSQL.g:716:29: (op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) ) )
{
// PhoenixSQL.g:716:29: (op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) ) )
// PhoenixSQL.g:716:30: op= comparison_op (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) )
{
pushFollow(FOLLOW_comparison_op_in_boolean_expression4631);
op=comparison_op();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:716:47: (r= value_expression | ( LPAREN r= subquery_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN ) | ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN ) )
int alt121=4;
switch ( input.LA(1) ) {
case ARRAY:
case BIND_NAME:
case CASE:
case CAST:
case CURRENT:
case DECIMAL:
case DOUBLE:
case FALSE:
case LONG:
case MINUS:
case NAME:
case NEXT:
case NULL:
case NUMBER:
case QUESTION:
case STRING_LITERAL:
case TRUE:
{
alt121=1;
}
break;
case LPAREN:
{
int LA121_2 = input.LA(2);
if ( (LA121_2==ARRAY||LA121_2==BIND_NAME||(LA121_2 >= CASE && LA121_2 <= CAST)||LA121_2==CURRENT||LA121_2==DECIMAL||LA121_2==DOUBLE||LA121_2==EXISTS||LA121_2==FALSE||(LA121_2 >= LONG && LA121_2 <= LPAREN)||LA121_2==MINUS||(LA121_2 >= NAME && LA121_2 <= NEXT)||(LA121_2 >= NOT && LA121_2 <= NULL)||LA121_2==NUMBER||LA121_2==QUESTION||LA121_2==STRING_LITERAL||LA121_2==TRUE) ) {
alt121=1;
}
else if ( (LA121_2==SELECT) ) {
alt121=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 121, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALL:
{
int LA121_3 = input.LA(2);
if ( (LA121_3==LPAREN) ) {
int LA121_6 = input.LA(3);
if ( (LA121_6==ARRAY||LA121_6==BIND_NAME||(LA121_6 >= CASE && LA121_6 <= CAST)||LA121_6==CURRENT||LA121_6==DECIMAL||LA121_6==DOUBLE||LA121_6==FALSE||(LA121_6 >= LONG && LA121_6 <= LPAREN)||LA121_6==MINUS||(LA121_6 >= NAME && LA121_6 <= NEXT)||LA121_6==NULL||LA121_6==NUMBER||LA121_6==QUESTION||LA121_6==STRING_LITERAL||LA121_6==TRUE) ) {
alt121=3;
}
else if ( (LA121_6==SELECT) ) {
alt121=4;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 121, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 121, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ANY:
{
int LA121_4 = input.LA(2);
if ( (LA121_4==LPAREN) ) {
int LA121_6 = input.LA(3);
if ( (LA121_6==ARRAY||LA121_6==BIND_NAME||(LA121_6 >= CASE && LA121_6 <= CAST)||LA121_6==CURRENT||LA121_6==DECIMAL||LA121_6==DOUBLE||LA121_6==FALSE||(LA121_6 >= LONG && LA121_6 <= LPAREN)||LA121_6==MINUS||(LA121_6 >= NAME && LA121_6 <= NEXT)||LA121_6==NULL||LA121_6==NUMBER||LA121_6==QUESTION||LA121_6==STRING_LITERAL||LA121_6==TRUE) ) {
alt121=3;
}
else if ( (LA121_6==SELECT) ) {
alt121=4;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 121, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 121, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 121, 0, input);
throw nvae;
}
switch (alt121) {
case 1 :
// PhoenixSQL.g:716:48: r= value_expression
{
pushFollow(FOLLOW_value_expression_in_boolean_expression4636);
r=value_expression();
state._fsp--;
if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:716:69: ( LPAREN r= subquery_expression RPAREN )
{
// PhoenixSQL.g:716:69: ( LPAREN r= subquery_expression RPAREN )
// PhoenixSQL.g:716:70: LPAREN r= subquery_expression RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_boolean_expression4641); if (state.failed) return ret;
pushFollow(FOLLOW_subquery_expression_in_boolean_expression4645);
r=subquery_expression();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_boolean_expression4647); if (state.failed) return ret;
}
}
break;
case 3 :
// PhoenixSQL.g:716:109: ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN )
{
// PhoenixSQL.g:716:109: ( (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN )
// PhoenixSQL.g:716:110: (all= ALL |any= ANY ) LPAREN r= value_expression RPAREN
{
// PhoenixSQL.g:716:110: (all= ALL |any= ANY )
int alt119=2;
int LA119_0 = input.LA(1);
if ( (LA119_0==ALL) ) {
alt119=1;
}
else if ( (LA119_0==ANY) ) {
alt119=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 119, 0, input);
throw nvae;
}
switch (alt119) {
case 1 :
// PhoenixSQL.g:716:111: all= ALL
{
all=(Token)match(input,ALL,FOLLOW_ALL_in_boolean_expression4656); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:716:121: any= ANY
{
any=(Token)match(input,ANY,FOLLOW_ANY_in_boolean_expression4662); if (state.failed) return ret;
}
break;
}
match(input,LPAREN,FOLLOW_LPAREN_in_boolean_expression4665); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_boolean_expression4669);
r=value_expression();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_boolean_expression4671); if (state.failed) return ret;
}
}
break;
case 4 :
// PhoenixSQL.g:716:167: ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN )
{
// PhoenixSQL.g:716:167: ( (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN )
// PhoenixSQL.g:716:168: (all= ALL |any= ANY ) LPAREN r= subquery_expression RPAREN
{
// PhoenixSQL.g:716:168: (all= ALL |any= ANY )
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==ALL) ) {
alt120=1;
}
else if ( (LA120_0==ANY) ) {
alt120=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 120, 0, input);
throw nvae;
}
switch (alt120) {
case 1 :
// PhoenixSQL.g:716:169: all= ALL
{
all=(Token)match(input,ALL,FOLLOW_ALL_in_boolean_expression4681); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:716:179: any= ANY
{
any=(Token)match(input,ANY,FOLLOW_ANY_in_boolean_expression4687); if (state.failed) return ret;
}
break;
}
match(input,LPAREN,FOLLOW_LPAREN_in_boolean_expression4690); if (state.failed) return ret;
pushFollow(FOLLOW_subquery_expression_in_boolean_expression4694);
r=subquery_expression();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_boolean_expression4696); if (state.failed) return ret;
}
}
break;
}
if ( state.backtracking==0 ) {ret = all != null ? factory.wrapInAll(op, l, r) : any != null ? factory.wrapInAny(op, l, r) : factory.comparison(op,l,r); }
}
}
break;
case 2 :
// PhoenixSQL.g:717:22: ( IS (n= NOT )? NULL )
{
// PhoenixSQL.g:717:22: ( IS (n= NOT )? NULL )
// PhoenixSQL.g:717:23: IS (n= NOT )? NULL
{
match(input,IS,FOLLOW_IS_in_boolean_expression4726); if (state.failed) return ret;
// PhoenixSQL.g:717:27: (n= NOT )?
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==NOT) ) {
alt122=1;
}
switch (alt122) {
case 1 :
// PhoenixSQL.g:717:27: n= NOT
{
n=(Token)match(input,NOT,FOLLOW_NOT_in_boolean_expression4730); if (state.failed) return ret;
}
break;
}
match(input,NULL,FOLLOW_NULL_in_boolean_expression4733); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.isNull(l,n!=null); }
}
}
break;
case 3 :
// PhoenixSQL.g:718:22: ( (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) ) )
{
// PhoenixSQL.g:718:22: ( (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) ) )
// PhoenixSQL.g:718:24: (n= NOT )? ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) )
{
// PhoenixSQL.g:718:25: (n= NOT )?
int alt123=2;
int LA123_0 = input.LA(1);
if ( (LA123_0==NOT) ) {
alt123=1;
}
switch (alt123) {
case 1 :
// PhoenixSQL.g:718:25: n= NOT
{
n=(Token)match(input,NOT,FOLLOW_NOT_in_boolean_expression4764); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:718:31: ( ( LIKE r= value_expression ) | ( ILIKE r= value_expression ) | ( BETWEEN r1= value_expression AND r2= value_expression ) | ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) ) )
int alt125=4;
switch ( input.LA(1) ) {
case LIKE:
{
alt125=1;
}
break;
case ILIKE:
{
alt125=2;
}
break;
case BETWEEN:
{
alt125=3;
}
break;
case IN:
{
alt125=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 125, 0, input);
throw nvae;
}
switch (alt125) {
case 1 :
// PhoenixSQL.g:718:32: ( LIKE r= value_expression )
{
// PhoenixSQL.g:718:32: ( LIKE r= value_expression )
// PhoenixSQL.g:718:33: LIKE r= value_expression
{
match(input,LIKE,FOLLOW_LIKE_in_boolean_expression4769); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_boolean_expression4773);
r=value_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.like(l,r,n!=null,LikeType.CASE_SENSITIVE); }
}
}
break;
case 2 :
// PhoenixSQL.g:719:32: ( ILIKE r= value_expression )
{
// PhoenixSQL.g:719:32: ( ILIKE r= value_expression )
// PhoenixSQL.g:719:33: ILIKE r= value_expression
{
match(input,ILIKE,FOLLOW_ILIKE_in_boolean_expression4811); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_boolean_expression4815);
r=value_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.like(l,r,n!=null,LikeType.CASE_INSENSITIVE); }
}
}
break;
case 3 :
// PhoenixSQL.g:720:32: ( BETWEEN r1= value_expression AND r2= value_expression )
{
// PhoenixSQL.g:720:32: ( BETWEEN r1= value_expression AND r2= value_expression )
// PhoenixSQL.g:720:33: BETWEEN r1= value_expression AND r2= value_expression
{
match(input,BETWEEN,FOLLOW_BETWEEN_in_boolean_expression4853); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_boolean_expression4857);
r1=value_expression();
state._fsp--;
if (state.failed) return ret;
match(input,AND,FOLLOW_AND_in_boolean_expression4859); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_boolean_expression4863);
r2=value_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.between(l,r1,r2,n!=null); }
}
}
break;
case 4 :
// PhoenixSQL.g:721:32: ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) )
{
// PhoenixSQL.g:721:32: ( ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) ) )
// PhoenixSQL.g:721:33: ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) )
{
// PhoenixSQL.g:721:33: ( IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) ) )
// PhoenixSQL.g:721:34: IN ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) )
{
match(input,IN,FOLLOW_IN_in_boolean_expression4902); if (state.failed) return ret;
// PhoenixSQL.g:721:37: ( (r= bind_expression ) | ( LPAREN r= subquery_expression RPAREN ) | ( LPAREN v= one_or_more_expressions RPAREN ) )
int alt124=3;
int LA124_0 = input.LA(1);
if ( (LA124_0==BIND_NAME||LA124_0==QUESTION) ) {
alt124=1;
}
else if ( (LA124_0==LPAREN) ) {
int LA124_2 = input.LA(2);
if ( (LA124_2==SELECT) ) {
alt124=2;
}
else if ( (LA124_2==ARRAY||LA124_2==BIND_NAME||(LA124_2 >= CASE && LA124_2 <= CAST)||LA124_2==CURRENT||LA124_2==DECIMAL||LA124_2==DOUBLE||LA124_2==EXISTS||LA124_2==FALSE||(LA124_2 >= LONG && LA124_2 <= LPAREN)||LA124_2==MINUS||(LA124_2 >= NAME && LA124_2 <= NEXT)||(LA124_2 >= NOT && LA124_2 <= NULL)||LA124_2==NUMBER||LA124_2==QUESTION||LA124_2==STRING_LITERAL||LA124_2==TRUE) ) {
alt124=3;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 124, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 124, 0, input);
throw nvae;
}
switch (alt124) {
case 1 :
// PhoenixSQL.g:721:38: (r= bind_expression )
{
// PhoenixSQL.g:721:38: (r= bind_expression )
// PhoenixSQL.g:721:39: r= bind_expression
{
pushFollow(FOLLOW_bind_expression_in_boolean_expression4908);
r=bind_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.inList(Arrays.asList(l,r),n!=null);}
}
}
break;
case 2 :
// PhoenixSQL.g:722:35: ( LPAREN r= subquery_expression RPAREN )
{
// PhoenixSQL.g:722:35: ( LPAREN r= subquery_expression RPAREN )
// PhoenixSQL.g:722:36: LPAREN r= subquery_expression RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_boolean_expression4949); if (state.failed) return ret;
pushFollow(FOLLOW_subquery_expression_in_boolean_expression4953);
r=subquery_expression();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_boolean_expression4955); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.in(l,r,n!=null,false);}
}
}
break;
case 3 :
// PhoenixSQL.g:723:35: ( LPAREN v= one_or_more_expressions RPAREN )
{
// PhoenixSQL.g:723:35: ( LPAREN v= one_or_more_expressions RPAREN )
// PhoenixSQL.g:723:36: LPAREN v= one_or_more_expressions RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_boolean_expression4996); if (state.failed) return ret;
pushFollow(FOLLOW_one_or_more_expressions_in_boolean_expression5000);
v=one_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_boolean_expression5002); if (state.failed) return ret;
if ( state.backtracking==0 ) {List il = new ArrayList(v.size() + 1); il.add(l); il.addAll(v); ret = factory.inList(il,n!=null);}
}
}
break;
}
}
}
}
break;
}
}
}
break;
case 4 :
// PhoenixSQL.g:726:23:
{
if ( state.backtracking==0 ) { ret = l; }
}
break;
}
}
break;
case 2 :
// PhoenixSQL.g:727:9: EXISTS LPAREN s= subquery_expression RPAREN
{
match(input,EXISTS,FOLLOW_EXISTS_in_boolean_expression5102); if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_boolean_expression5104); if (state.failed) return ret;
pushFollow(FOLLOW_subquery_expression_in_boolean_expression5108);
s=subquery_expression();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_boolean_expression5110); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.exists(s,false);}
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "boolean_expression"
// $ANTLR start "bind_expression"
// PhoenixSQL.g:730:1: bind_expression returns [BindParseNode ret] : b= bind_name ;
public final BindParseNode bind_expression() throws RecognitionException {
BindParseNode ret = null;
String b =null;
try {
// PhoenixSQL.g:731:5: (b= bind_name )
// PhoenixSQL.g:731:9: b= bind_name
{
pushFollow(FOLLOW_bind_name_in_bind_expression5138);
b=bind_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.bind(b); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "bind_expression"
// $ANTLR start "value_expression"
// PhoenixSQL.g:734:1: value_expression returns [ParseNode ret] : i= add_expression ;
public final ParseNode value_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode i =null;
try {
// PhoenixSQL.g:735:5: (i= add_expression )
// PhoenixSQL.g:735:9: i= add_expression
{
pushFollow(FOLLOW_add_expression_in_value_expression5169);
i=add_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = i; }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "value_expression"
// $ANTLR start "add_expression"
// PhoenixSQL.g:738:1: add_expression returns [ParseNode ret] : i= subtract_expression ( PLUS i= subtract_expression )* ;
public final ParseNode add_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode i =null;
List l = new ArrayList(4);
try {
// PhoenixSQL.g:740:5: (i= subtract_expression ( PLUS i= subtract_expression )* )
// PhoenixSQL.g:740:9: i= subtract_expression ( PLUS i= subtract_expression )*
{
pushFollow(FOLLOW_subtract_expression_in_add_expression5200);
i=subtract_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
// PhoenixSQL.g:740:43: ( PLUS i= subtract_expression )*
loop128:
while (true) {
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==PLUS) ) {
alt128=1;
}
switch (alt128) {
case 1 :
// PhoenixSQL.g:740:44: PLUS i= subtract_expression
{
match(input,PLUS,FOLLOW_PLUS_in_add_expression5205); if (state.failed) return ret;
pushFollow(FOLLOW_subtract_expression_in_add_expression5209);
i=subtract_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
}
break;
default :
break loop128;
}
}
if ( state.backtracking==0 ) { ret = l.size() == 1 ? l.get(0) : factory.add(l); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "add_expression"
// $ANTLR start "subtract_expression"
// PhoenixSQL.g:743:1: subtract_expression returns [ParseNode ret] : i= concat_expression ( MINUS i= concat_expression )* ;
public final ParseNode subtract_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode i =null;
List l = new ArrayList(4);
try {
// PhoenixSQL.g:745:5: (i= concat_expression ( MINUS i= concat_expression )* )
// PhoenixSQL.g:745:9: i= concat_expression ( MINUS i= concat_expression )*
{
pushFollow(FOLLOW_concat_expression_in_subtract_expression5244);
i=concat_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
// PhoenixSQL.g:745:41: ( MINUS i= concat_expression )*
loop129:
while (true) {
int alt129=2;
int LA129_0 = input.LA(1);
if ( (LA129_0==MINUS) ) {
alt129=1;
}
switch (alt129) {
case 1 :
// PhoenixSQL.g:745:42: MINUS i= concat_expression
{
match(input,MINUS,FOLLOW_MINUS_in_subtract_expression5249); if (state.failed) return ret;
pushFollow(FOLLOW_concat_expression_in_subtract_expression5253);
i=concat_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
}
break;
default :
break loop129;
}
}
if ( state.backtracking==0 ) { ret = l.size() == 1 ? l.get(0) : factory.subtract(l); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "subtract_expression"
// $ANTLR start "concat_expression"
// PhoenixSQL.g:748:1: concat_expression returns [ParseNode ret] : i= multiply_divide_modulo_expression ( CONCAT i= multiply_divide_modulo_expression )* ;
public final ParseNode concat_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode i =null;
List l = new ArrayList(4);
try {
// PhoenixSQL.g:750:5: (i= multiply_divide_modulo_expression ( CONCAT i= multiply_divide_modulo_expression )* )
// PhoenixSQL.g:750:9: i= multiply_divide_modulo_expression ( CONCAT i= multiply_divide_modulo_expression )*
{
pushFollow(FOLLOW_multiply_divide_modulo_expression_in_concat_expression5288);
i=multiply_divide_modulo_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
// PhoenixSQL.g:750:57: ( CONCAT i= multiply_divide_modulo_expression )*
loop130:
while (true) {
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==CONCAT) ) {
alt130=1;
}
switch (alt130) {
case 1 :
// PhoenixSQL.g:750:58: CONCAT i= multiply_divide_modulo_expression
{
match(input,CONCAT,FOLLOW_CONCAT_in_concat_expression5293); if (state.failed) return ret;
pushFollow(FOLLOW_multiply_divide_modulo_expression_in_concat_expression5297);
i=multiply_divide_modulo_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {l.add(i);}
}
break;
default :
break loop130;
}
}
if ( state.backtracking==0 ) { ret = l.size() == 1 ? l.get(0) : factory.concat(l); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "concat_expression"
// $ANTLR start "multiply_divide_modulo_expression"
// PhoenixSQL.g:753:1: multiply_divide_modulo_expression returns [ParseNode ret] : i= negate_expression (op= ( ASTERISK | DIVIDE | PERCENT ) rhs= negate_expression )* ;
public final ParseNode multiply_divide_modulo_expression() throws RecognitionException {
ParseNode ret = null;
Token op=null;
ParseNode i =null;
ParseNode rhs =null;
ParseNode lhs = null; List l;
try {
// PhoenixSQL.g:755:5: (i= negate_expression (op= ( ASTERISK | DIVIDE | PERCENT ) rhs= negate_expression )* )
// PhoenixSQL.g:755:9: i= negate_expression (op= ( ASTERISK | DIVIDE | PERCENT ) rhs= negate_expression )*
{
pushFollow(FOLLOW_negate_expression_in_multiply_divide_modulo_expression5332);
i=negate_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {lhs = i;}
// PhoenixSQL.g:756:9: (op= ( ASTERISK | DIVIDE | PERCENT ) rhs= negate_expression )*
loop131:
while (true) {
int alt131=2;
int LA131_0 = input.LA(1);
if ( (LA131_0==ASTERISK||LA131_0==DIVIDE||LA131_0==PERCENT) ) {
alt131=1;
}
switch (alt131) {
case 1 :
// PhoenixSQL.g:756:10: op= ( ASTERISK | DIVIDE | PERCENT ) rhs= negate_expression
{
op=input.LT(1);
if ( input.LA(1)==ASTERISK||input.LA(1)==DIVIDE||input.LA(1)==PERCENT ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_negate_expression_in_multiply_divide_modulo_expression5362);
rhs=negate_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {
l = Arrays.asList(lhs, rhs);
// determine the expression type based on the operator found
lhs = op.getType() == ASTERISK ? factory.multiply(l)
: op.getType() == DIVIDE ? factory.divide(l)
: factory.modulus(l);
}
}
break;
default :
break loop131;
}
}
if ( state.backtracking==0 ) { ret = lhs; }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "multiply_divide_modulo_expression"
// $ANTLR start "negate_expression"
// PhoenixSQL.g:767:1: negate_expression returns [ParseNode ret] : (m= MINUS )? e= array_expression ;
public final ParseNode negate_expression() throws RecognitionException {
ParseNode ret = null;
Token m=null;
ParseNode e =null;
try {
// PhoenixSQL.g:768:5: ( (m= MINUS )? e= array_expression )
// PhoenixSQL.g:768:9: (m= MINUS )? e= array_expression
{
// PhoenixSQL.g:768:10: (m= MINUS )?
int alt132=2;
int LA132_0 = input.LA(1);
if ( (LA132_0==MINUS) ) {
alt132=1;
}
switch (alt132) {
case 1 :
// PhoenixSQL.g:768:10: m= MINUS
{
m=(Token)match(input,MINUS,FOLLOW_MINUS_in_negate_expression5410); if (state.failed) return ret;
}
break;
}
pushFollow(FOLLOW_array_expression_in_negate_expression5415);
e=array_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = m==null ? e : factory.negate(e); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "negate_expression"
// $ANTLR start "array_expression"
// PhoenixSQL.g:772:1: array_expression returns [ParseNode ret] : e= term ( LSQUARE s= value_expression RSQUARE )? ;
public final ParseNode array_expression() throws RecognitionException {
ParseNode ret = null;
ParseNode e =null;
ParseNode s =null;
try {
// PhoenixSQL.g:773:5: (e= term ( LSQUARE s= value_expression RSQUARE )? )
// PhoenixSQL.g:773:9: e= term ( LSQUARE s= value_expression RSQUARE )?
{
pushFollow(FOLLOW_term_in_array_expression5443);
e=term();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:773:16: ( LSQUARE s= value_expression RSQUARE )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==LSQUARE) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// PhoenixSQL.g:773:17: LSQUARE s= value_expression RSQUARE
{
match(input,LSQUARE,FOLLOW_LSQUARE_in_array_expression5446); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_array_expression5450);
s=value_expression();
state._fsp--;
if (state.failed) return ret;
match(input,RSQUARE,FOLLOW_RSQUARE_in_array_expression5452); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) { if (s == null) { ret = e; } else { ret = factory.arrayElemRef(Arrays.asList(e,s)); } }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "array_expression"
// $ANTLR start "term"
// PhoenixSQL.g:776:1: term returns [ParseNode ret] : (e= literal_or_bind |field= identifier |ex= ARRAY LSQUARE v= one_or_more_expressions RSQUARE |tableName= table_name DOT field= identifier |field= identifier LPAREN l= zero_or_more_expressions RPAREN wg= ( WITHIN GROUP LPAREN ORDER BY l2= one_or_more_expressions (a= ASC | DESC ) RPAREN )? |field= identifier LPAREN t= ASTERISK RPAREN |field= identifier LPAREN t= DISTINCT l= zero_or_more_expressions RPAREN |e= case_statement | LPAREN l= one_or_more_expressions RPAREN | CAST LPAREN e= expression AS dt= identifier ( LPAREN length= NUMBER ( COMMA scale= NUMBER )? RPAREN )? ar= ( ARRAY | ( LSQUARE RSQUARE ) )? RPAREN | (n= NEXT | CURRENT ) VALUE FOR s= from_table_name );
public final ParseNode term() throws RecognitionException {
ParseNode ret = null;
Token ex=null;
Token a=null;
Token wg=null;
Token t=null;
Token length=null;
Token scale=null;
Token ar=null;
Token n=null;
ParseNode e =null;
String field =null;
List v =null;
TableName tableName =null;
List l =null;
List l2 =null;
String dt =null;
TableName s =null;
try {
// PhoenixSQL.g:777:5: (e= literal_or_bind |field= identifier |ex= ARRAY LSQUARE v= one_or_more_expressions RSQUARE |tableName= table_name DOT field= identifier |field= identifier LPAREN l= zero_or_more_expressions RPAREN wg= ( WITHIN GROUP LPAREN ORDER BY l2= one_or_more_expressions (a= ASC | DESC ) RPAREN )? |field= identifier LPAREN t= ASTERISK RPAREN |field= identifier LPAREN t= DISTINCT l= zero_or_more_expressions RPAREN |e= case_statement | LPAREN l= one_or_more_expressions RPAREN | CAST LPAREN e= expression AS dt= identifier ( LPAREN length= NUMBER ( COMMA scale= NUMBER )? RPAREN )? ar= ( ARRAY | ( LSQUARE RSQUARE ) )? RPAREN | (n= NEXT | CURRENT ) VALUE FOR s= from_table_name )
int alt140=11;
switch ( input.LA(1) ) {
case BIND_NAME:
case DECIMAL:
case DOUBLE:
case FALSE:
case LONG:
case NULL:
case NUMBER:
case QUESTION:
case STRING_LITERAL:
case TRUE:
{
alt140=1;
}
break;
case NAME:
{
switch ( input.LA(2) ) {
case EOF:
case AND:
case AS:
case ASC:
case ASTERISK:
case BETWEEN:
case CACHE:
case COMMA:
case CONCAT:
case CYCLE:
case DESC:
case DIVIDE:
case ELSE:
case END:
case EQ:
case FROM:
case FULL:
case GROUP:
case GT:
case HAVING:
case ILIKE:
case IN:
case INCREMENT:
case INNER:
case IS:
case JOIN:
case LEFT:
case LIKE:
case LIMIT:
case LSQUARE:
case LT:
case MAXVALUE:
case MINUS:
case MINVALUE:
case NAME:
case NOEQ1:
case NOEQ2:
case NOT:
case NULLS:
case OR:
case ORDER:
case PERCENT:
case PLUS:
case RIGHT:
case RPAREN:
case RSQUARE:
case SEMICOLON:
case THEN:
case WHEN:
case WHERE:
{
alt140=2;
}
break;
case DOT:
{
alt140=4;
}
break;
case LPAREN:
{
switch ( input.LA(3) ) {
case ASTERISK:
{
alt140=6;
}
break;
case DISTINCT:
{
alt140=7;
}
break;
case ARRAY:
case BIND_NAME:
case CASE:
case CAST:
case COMMA:
case CURRENT:
case DECIMAL:
case DOUBLE:
case EXISTS:
case FALSE:
case LONG:
case LPAREN:
case MINUS:
case NAME:
case NEXT:
case NOT:
case NULL:
case NUMBER:
case QUESTION:
case RPAREN:
case STRING_LITERAL:
case TRUE:
{
alt140=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 140, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 140, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ARRAY:
{
alt140=3;
}
break;
case CASE:
{
alt140=8;
}
break;
case LPAREN:
{
alt140=9;
}
break;
case CAST:
{
alt140=10;
}
break;
case CURRENT:
case NEXT:
{
alt140=11;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 140, 0, input);
throw nvae;
}
switch (alt140) {
case 1 :
// PhoenixSQL.g:777:9: e= literal_or_bind
{
pushFollow(FOLLOW_literal_or_bind_in_term5485);
e=literal_or_bind();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = e; }
}
break;
case 2 :
// PhoenixSQL.g:778:9: field= identifier
{
pushFollow(FOLLOW_identifier_in_term5499);
field=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.column(null,field,field); }
}
break;
case 3 :
// PhoenixSQL.g:779:9: ex= ARRAY LSQUARE v= one_or_more_expressions RSQUARE
{
ex=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_term5513); if (state.failed) return ret;
match(input,LSQUARE,FOLLOW_LSQUARE_in_term5515); if (state.failed) return ret;
pushFollow(FOLLOW_one_or_more_expressions_in_term5519);
v=one_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
match(input,RSQUARE,FOLLOW_RSQUARE_in_term5521); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.upsertStmtArrayNode(v);}
}
break;
case 4 :
// PhoenixSQL.g:780:9: tableName= table_name DOT field= identifier
{
pushFollow(FOLLOW_table_name_in_term5535);
tableName=table_name();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_term5537); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_term5541);
field=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.column(tableName, field, field); }
}
break;
case 5 :
// PhoenixSQL.g:781:9: field= identifier LPAREN l= zero_or_more_expressions RPAREN wg= ( WITHIN GROUP LPAREN ORDER BY l2= one_or_more_expressions (a= ASC | DESC ) RPAREN )?
{
pushFollow(FOLLOW_identifier_in_term5555);
field=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_term5557); if (state.failed) return ret;
pushFollow(FOLLOW_zero_or_more_expressions_in_term5561);
l=zero_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_term5563); if (state.failed) return ret;
// PhoenixSQL.g:781:70: ( WITHIN GROUP LPAREN ORDER BY l2= one_or_more_expressions (a= ASC | DESC ) RPAREN )?
int alt135=2;
int LA135_0 = input.LA(1);
if ( (LA135_0==WITHIN) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// PhoenixSQL.g:781:71: WITHIN GROUP LPAREN ORDER BY l2= one_or_more_expressions (a= ASC | DESC ) RPAREN
{
wg=(Token)match(input,WITHIN,FOLLOW_WITHIN_in_term5568); if (state.failed) return ret;
wg=(Token)match(input,GROUP,FOLLOW_GROUP_in_term5570); if (state.failed) return ret;
wg=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_term5572); if (state.failed) return ret;
wg=(Token)match(input,ORDER,FOLLOW_ORDER_in_term5574); if (state.failed) return ret;
wg=(Token)match(input,BY,FOLLOW_BY_in_term5576); if (state.failed) return ret;
pushFollow(FOLLOW_one_or_more_expressions_in_term5580);
l2=one_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:781:127: (a= ASC | DESC )
int alt134=2;
int LA134_0 = input.LA(1);
if ( (LA134_0==ASC) ) {
alt134=1;
}
else if ( (LA134_0==DESC) ) {
alt134=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 134, 0, input);
throw nvae;
}
switch (alt134) {
case 1 :
// PhoenixSQL.g:781:128: a= ASC
{
a=(Token)match(input,ASC,FOLLOW_ASC_in_term5585); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:781:136: DESC
{
wg=(Token)match(input,DESC,FOLLOW_DESC_in_term5589); if (state.failed) return ret;
}
break;
}
wg=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_term5592); if (state.failed) return ret;
}
break;
}
if ( state.backtracking==0 ) {
FunctionParseNode f = wg==null ? factory.function(field, l) : factory.function(field,l,l2,a!=null);
contextStack.peek().setAggregate(f.isAggregate());
ret = f;
}
}
break;
case 6 :
// PhoenixSQL.g:787:9: field= identifier LPAREN t= ASTERISK RPAREN
{
pushFollow(FOLLOW_identifier_in_term5617);
field=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_term5619); if (state.failed) return ret;
t=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_term5623); if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_term5625); if (state.failed) return ret;
if ( state.backtracking==0 ) {
if (!isCountFunction(field)) {
throwRecognitionException(t);
}
FunctionParseNode f = factory.function(field, LiteralParseNode.STAR);
contextStack.peek().setAggregate(f.isAggregate());
ret = f;
}
}
break;
case 7 :
// PhoenixSQL.g:796:9: field= identifier LPAREN t= DISTINCT l= zero_or_more_expressions RPAREN
{
pushFollow(FOLLOW_identifier_in_term5649);
field=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_term5651); if (state.failed) return ret;
t=(Token)match(input,DISTINCT,FOLLOW_DISTINCT_in_term5655); if (state.failed) return ret;
pushFollow(FOLLOW_zero_or_more_expressions_in_term5659);
l=zero_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_term5661); if (state.failed) return ret;
if ( state.backtracking==0 ) {
FunctionParseNode f = factory.functionDistinct(field, l);
contextStack.peek().setAggregate(f.isAggregate());
ret = f;
}
}
break;
case 8 :
// PhoenixSQL.g:802:9: e= case_statement
{
pushFollow(FOLLOW_case_statement_in_term5684);
e=case_statement();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = e; }
}
break;
case 9 :
// PhoenixSQL.g:803:9: LPAREN l= one_or_more_expressions RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_term5696); if (state.failed) return ret;
pushFollow(FOLLOW_one_or_more_expressions_in_term5700);
l=one_or_more_expressions();
state._fsp--;
if (state.failed) return ret;
match(input,RPAREN,FOLLOW_RPAREN_in_term5702); if (state.failed) return ret;
if ( state.backtracking==0 ) {
if(l.size() == 1) {
ret = l.get(0);
}
else {
ret = factory.rowValueConstructor(l);
}
}
}
break;
case 10 :
// PhoenixSQL.g:812:9: CAST LPAREN e= expression AS dt= identifier ( LPAREN length= NUMBER ( COMMA scale= NUMBER )? RPAREN )? ar= ( ARRAY | ( LSQUARE RSQUARE ) )? RPAREN
{
match(input,CAST,FOLLOW_CAST_in_term5720); if (state.failed) return ret;
match(input,LPAREN,FOLLOW_LPAREN_in_term5722); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_term5726);
e=expression();
state._fsp--;
if (state.failed) return ret;
match(input,AS,FOLLOW_AS_in_term5728); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_term5732);
dt=identifier();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:812:51: ( LPAREN length= NUMBER ( COMMA scale= NUMBER )? RPAREN )?
int alt137=2;
int LA137_0 = input.LA(1);
if ( (LA137_0==LPAREN) ) {
alt137=1;
}
switch (alt137) {
case 1 :
// PhoenixSQL.g:812:52: LPAREN length= NUMBER ( COMMA scale= NUMBER )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_term5735); if (state.failed) return ret;
length=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_term5739); if (state.failed) return ret;
// PhoenixSQL.g:812:73: ( COMMA scale= NUMBER )?
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==COMMA) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// PhoenixSQL.g:812:74: COMMA scale= NUMBER
{
match(input,COMMA,FOLLOW_COMMA_in_term5742); if (state.failed) return ret;
scale=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_term5746); if (state.failed) return ret;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_term5750); if (state.failed) return ret;
}
break;
}
// PhoenixSQL.g:812:107: ( ARRAY | ( LSQUARE RSQUARE ) )?
int alt138=3;
int LA138_0 = input.LA(1);
if ( (LA138_0==ARRAY) ) {
alt138=1;
}
else if ( (LA138_0==LSQUARE) ) {
alt138=2;
}
switch (alt138) {
case 1 :
// PhoenixSQL.g:812:108: ARRAY
{
ar=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_term5757); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:812:116: ( LSQUARE RSQUARE )
{
// PhoenixSQL.g:812:116: ( LSQUARE RSQUARE )
// PhoenixSQL.g:812:117: LSQUARE RSQUARE
{
ar=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_term5762); if (state.failed) return ret;
ar=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_term5764); if (state.failed) return ret;
}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_term5769); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.cast(e, dt,
length == null ? null : Integer.parseInt(length.getText()),
scale == null ? null : Integer.parseInt(scale.getText()),
ar!=null);
}
}
break;
case 11 :
// PhoenixSQL.g:818:9: (n= NEXT | CURRENT ) VALUE FOR s= from_table_name
{
// PhoenixSQL.g:818:9: (n= NEXT | CURRENT )
int alt139=2;
int LA139_0 = input.LA(1);
if ( (LA139_0==NEXT) ) {
alt139=1;
}
else if ( (LA139_0==CURRENT) ) {
alt139=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 139, 0, input);
throw nvae;
}
switch (alt139) {
case 1 :
// PhoenixSQL.g:818:10: n= NEXT
{
n=(Token)match(input,NEXT,FOLLOW_NEXT_in_term5792); if (state.failed) return ret;
}
break;
case 2 :
// PhoenixSQL.g:818:19: CURRENT
{
match(input,CURRENT,FOLLOW_CURRENT_in_term5796); if (state.failed) return ret;
}
break;
}
match(input,VALUE,FOLLOW_VALUE_in_term5799); if (state.failed) return ret;
match(input,FOR,FOLLOW_FOR_in_term5801); if (state.failed) return ret;
pushFollow(FOLLOW_from_table_name_in_term5805);
s=from_table_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { contextStack.peek().hasSequences(true);
ret = n==null ? factory.currentValueFor(s) : factory.nextValueFor(s); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "term"
// $ANTLR start "one_or_more_expressions"
// PhoenixSQL.g:823:1: one_or_more_expressions returns [List ret] : e= expression ( COMMA e= expression )* ;
public final List one_or_more_expressions() throws RecognitionException {
List ret = null;
ParseNode e =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:825:5: (e= expression ( COMMA e= expression )* )
// PhoenixSQL.g:825:8: e= expression ( COMMA e= expression )*
{
pushFollow(FOLLOW_expression_in_one_or_more_expressions5850);
e=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(e);}
// PhoenixSQL.g:825:39: ( COMMA e= expression )*
loop141:
while (true) {
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==COMMA) ) {
alt141=1;
}
switch (alt141) {
case 1 :
// PhoenixSQL.g:825:40: COMMA e= expression
{
match(input,COMMA,FOLLOW_COMMA_in_one_or_more_expressions5856); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_one_or_more_expressions5862);
e=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(e);}
}
break;
default :
break loop141;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "one_or_more_expressions"
// $ANTLR start "zero_or_more_expressions"
// PhoenixSQL.g:828:1: zero_or_more_expressions returns [List ret] : (v= expression )? ( COMMA v= expression )* ;
public final List zero_or_more_expressions() throws RecognitionException {
List ret = null;
ParseNode v =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:830:5: ( (v= expression )? ( COMMA v= expression )* )
// PhoenixSQL.g:830:8: (v= expression )? ( COMMA v= expression )*
{
// PhoenixSQL.g:830:8: (v= expression )?
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==ARRAY||LA142_0==BIND_NAME||(LA142_0 >= CASE && LA142_0 <= CAST)||LA142_0==CURRENT||LA142_0==DECIMAL||LA142_0==DOUBLE||LA142_0==EXISTS||LA142_0==FALSE||(LA142_0 >= LONG && LA142_0 <= LPAREN)||LA142_0==MINUS||(LA142_0 >= NAME && LA142_0 <= NEXT)||(LA142_0 >= NOT && LA142_0 <= NULL)||LA142_0==NUMBER||LA142_0==QUESTION||LA142_0==STRING_LITERAL||LA142_0==TRUE) ) {
alt142=1;
}
switch (alt142) {
case 1 :
// PhoenixSQL.g:830:9: v= expression
{
pushFollow(FOLLOW_expression_in_zero_or_more_expressions5894);
v=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
}
break;
}
// PhoenixSQL.g:830:42: ( COMMA v= expression )*
loop143:
while (true) {
int alt143=2;
int LA143_0 = input.LA(1);
if ( (LA143_0==COMMA) ) {
alt143=1;
}
switch (alt143) {
case 1 :
// PhoenixSQL.g:830:43: COMMA v= expression
{
match(input,COMMA,FOLLOW_COMMA_in_zero_or_more_expressions5902); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_zero_or_more_expressions5908);
v=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(v);}
}
break;
default :
break loop143;
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "zero_or_more_expressions"
// $ANTLR start "value_expression_list"
// PhoenixSQL.g:833:1: value_expression_list returns [List ret] : LPAREN e= value_expression ( COMMA e= value_expression )* RPAREN ;
public final List value_expression_list() throws RecognitionException {
List ret = null;
ParseNode e =null;
ret = new ArrayList();
try {
// PhoenixSQL.g:835:5: ( LPAREN e= value_expression ( COMMA e= value_expression )* RPAREN )
// PhoenixSQL.g:835:8: LPAREN e= value_expression ( COMMA e= value_expression )* RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_value_expression_list5935); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_value_expression_list5941);
e=value_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(e);}
// PhoenixSQL.g:835:52: ( COMMA e= value_expression )*
loop144:
while (true) {
int alt144=2;
int LA144_0 = input.LA(1);
if ( (LA144_0==COMMA) ) {
alt144=1;
}
switch (alt144) {
case 1 :
// PhoenixSQL.g:835:53: COMMA e= value_expression
{
match(input,COMMA,FOLLOW_COMMA_in_value_expression_list5947); if (state.failed) return ret;
pushFollow(FOLLOW_value_expression_in_value_expression_list5953);
e=value_expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret.add(e);}
}
break;
default :
break loop144;
}
}
match(input,RPAREN,FOLLOW_RPAREN_in_value_expression_list5960); if (state.failed) return ret;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "value_expression_list"
// $ANTLR start "index_name"
// PhoenixSQL.g:838:1: index_name returns [NamedNode ret] : name= identifier ;
public final NamedNode index_name() throws RecognitionException {
NamedNode ret = null;
String name =null;
try {
// PhoenixSQL.g:839:5: (name= identifier )
// PhoenixSQL.g:839:9: name= identifier
{
pushFollow(FOLLOW_identifier_in_index_name5981);
name=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.indexName(name); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "index_name"
// $ANTLR start "table_name"
// PhoenixSQL.g:843:1: table_name returns [TableName ret] : (t= identifier |s= identifier DOT t= identifier );
public final TableName table_name() throws RecognitionException {
TableName ret = null;
String t =null;
String s =null;
try {
// PhoenixSQL.g:844:5: (t= identifier |s= identifier DOT t= identifier )
int alt145=2;
int LA145_0 = input.LA(1);
if ( (LA145_0==NAME) ) {
int LA145_1 = input.LA(2);
if ( (LA145_1==DOT) ) {
int LA145_2 = input.LA(3);
if ( (LA145_2==NAME) ) {
int LA145_3 = input.LA(4);
if ( (LA145_3==EOF||LA145_3==AND||(LA145_3 >= AS && LA145_3 <= ASTERISK)||LA145_3==BETWEEN||LA145_3==CACHE||LA145_3==COMMA||LA145_3==CONCAT||LA145_3==CYCLE||LA145_3==DESC||LA145_3==DIVIDE||(LA145_3 >= ELSE && LA145_3 <= END)||LA145_3==EQ||(LA145_3 >= FROM && LA145_3 <= HAVING)||(LA145_3 >= ILIKE && LA145_3 <= IN)||LA145_3==INCREMENT||LA145_3==INNER||(LA145_3 >= IS && LA145_3 <= JOIN)||LA145_3==LEFT||(LA145_3 >= LIKE && LA145_3 <= LIMIT)||(LA145_3 >= LSQUARE && LA145_3 <= MINVALUE)||LA145_3==NAME||(LA145_3 >= NOEQ1 && LA145_3 <= NOT)||LA145_3==NULLS||(LA145_3 >= OR && LA145_3 <= ORDER)||(LA145_3 >= PERCENT && LA145_3 <= PLUS)||(LA145_3 >= RIGHT && LA145_3 <= RSQUARE)||LA145_3==SEMICOLON||LA145_3==THEN||(LA145_3 >= WHEN && LA145_3 <= WHERE)) ) {
alt145=1;
}
else if ( (LA145_3==DOT) ) {
alt145=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 145, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 145, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 145, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 145, 0, input);
throw nvae;
}
switch (alt145) {
case 1 :
// PhoenixSQL.g:844:9: t= identifier
{
pushFollow(FOLLOW_identifier_in_table_name6009);
t=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.table(null, t); }
}
break;
case 2 :
// PhoenixSQL.g:845:9: s= identifier DOT t= identifier
{
pushFollow(FOLLOW_identifier_in_table_name6023);
s=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_table_name6025); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_table_name6029);
t=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.table(s, t); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "table_name"
// $ANTLR start "from_table_name"
// PhoenixSQL.g:849:1: from_table_name returns [TableName ret] : (t= identifier |s= identifier DOT t= identifier );
public final TableName from_table_name() throws RecognitionException {
TableName ret = null;
String t =null;
String s =null;
try {
// PhoenixSQL.g:850:5: (t= identifier |s= identifier DOT t= identifier )
int alt146=2;
int LA146_0 = input.LA(1);
if ( (LA146_0==NAME) ) {
int LA146_1 = input.LA(2);
if ( (LA146_1==EOF||(LA146_1 >= ADD && LA146_1 <= ALL)||LA146_1==AND||(LA146_1 >= AS && LA146_1 <= ASTERISK)||LA146_1==BETWEEN||(LA146_1 >= CACHE && LA146_1 <= CASCADE)||(LA146_1 >= COLUMNS && LA146_1 <= COMMA)||LA146_1==CONCAT||LA146_1==CYCLE||LA146_1==DESC||LA146_1==DISABLE||LA146_1==DIVIDE||(LA146_1 >= DROP && LA146_1 <= END)||LA146_1==EQ||(LA146_1 >= FROM && LA146_1 <= HAVING)||(LA146_1 >= ILIKE && LA146_1 <= IN)||(LA146_1 >= INCREMENT && LA146_1 <= INNER)||(LA146_1 >= IS && LA146_1 <= JOIN)||LA146_1==LEFT||(LA146_1 >= LIKE && LA146_1 <= LIMIT)||(LA146_1 >= LPAREN && LA146_1 <= MINVALUE)||LA146_1==NAME||(LA146_1 >= NOEQ1 && LA146_1 <= NOT)||LA146_1==NULLS||(LA146_1 >= ON && LA146_1 <= ORDER)||(LA146_1 >= PERCENT && LA146_1 <= PLUS)||(LA146_1 >= REBUILD && LA146_1 <= SEMICOLON)||LA146_1==SET||LA146_1==START||LA146_1==THEN||LA146_1==UNUSABLE||LA146_1==USABLE||LA146_1==VALUES||(LA146_1 >= WHEN && LA146_1 <= WHERE)) ) {
alt146=1;
}
else if ( (LA146_1==DOT) ) {
alt146=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 146, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 146, 0, input);
throw nvae;
}
switch (alt146) {
case 1 :
// PhoenixSQL.g:850:9: t= identifier
{
pushFollow(FOLLOW_identifier_in_from_table_name6057);
t=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.table(null, t); }
}
break;
case 2 :
// PhoenixSQL.g:851:9: s= identifier DOT t= identifier
{
pushFollow(FOLLOW_identifier_in_from_table_name6071);
s=identifier();
state._fsp--;
if (state.failed) return ret;
match(input,DOT,FOLLOW_DOT_in_from_table_name6073); if (state.failed) return ret;
pushFollow(FOLLOW_identifier_in_from_table_name6077);
t=identifier();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.table(s, t); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "from_table_name"
// $ANTLR start "literal_or_bind"
// PhoenixSQL.g:855:1: literal_or_bind returns [ParseNode ret] : (e= literal |b= bind_name );
public final ParseNode literal_or_bind() throws RecognitionException {
ParseNode ret = null;
LiteralParseNode e =null;
String b =null;
try {
// PhoenixSQL.g:856:5: (e= literal |b= bind_name )
int alt147=2;
int LA147_0 = input.LA(1);
if ( (LA147_0==DECIMAL||LA147_0==DOUBLE||LA147_0==FALSE||LA147_0==LONG||LA147_0==NULL||LA147_0==NUMBER||LA147_0==STRING_LITERAL||LA147_0==TRUE) ) {
alt147=1;
}
else if ( (LA147_0==BIND_NAME||LA147_0==QUESTION) ) {
alt147=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 147, 0, input);
throw nvae;
}
switch (alt147) {
case 1 :
// PhoenixSQL.g:856:9: e= literal
{
pushFollow(FOLLOW_literal_in_literal_or_bind6109);
e=literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = e; }
}
break;
case 2 :
// PhoenixSQL.g:857:9: b= bind_name
{
pushFollow(FOLLOW_bind_name_in_literal_or_bind6123);
b=bind_name();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.bind(b); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "literal_or_bind"
// $ANTLR start "literal"
// PhoenixSQL.g:861:1: literal returns [LiteralParseNode ret] : (t= STRING_LITERAL |l= int_literal |l= long_literal |l= double_literal |t= DECIMAL | NULL | TRUE | FALSE );
public final LiteralParseNode literal() throws RecognitionException {
LiteralParseNode ret = null;
Token t=null;
LiteralParseNode l =null;
try {
// PhoenixSQL.g:862:5: (t= STRING_LITERAL |l= int_literal |l= long_literal |l= double_literal |t= DECIMAL | NULL | TRUE | FALSE )
int alt148=8;
switch ( input.LA(1) ) {
case STRING_LITERAL:
{
alt148=1;
}
break;
case NUMBER:
{
alt148=2;
}
break;
case LONG:
{
alt148=3;
}
break;
case DOUBLE:
{
alt148=4;
}
break;
case DECIMAL:
{
alt148=5;
}
break;
case NULL:
{
alt148=6;
}
break;
case TRUE:
{
alt148=7;
}
break;
case FALSE:
{
alt148=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 148, 0, input);
throw nvae;
}
switch (alt148) {
case 1 :
// PhoenixSQL.g:862:9: t= STRING_LITERAL
{
t=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_literal6155); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = factory.literal(t.getText()); }
}
break;
case 2 :
// PhoenixSQL.g:863:9: l= int_literal
{
pushFollow(FOLLOW_int_literal_in_literal6169);
l=int_literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = l; }
}
break;
case 3 :
// PhoenixSQL.g:864:9: l= long_literal
{
pushFollow(FOLLOW_long_literal_in_literal6183);
l=long_literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = l; }
}
break;
case 4 :
// PhoenixSQL.g:865:9: l= double_literal
{
pushFollow(FOLLOW_double_literal_in_literal6197);
l=double_literal();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = l; }
}
break;
case 5 :
// PhoenixSQL.g:866:9: t= DECIMAL
{
t=(Token)match(input,DECIMAL,FOLLOW_DECIMAL_in_literal6211); if (state.failed) return ret;
if ( state.backtracking==0 ) {
try {
ret = factory.literal(new BigDecimal(t.getText()));
} catch (NumberFormatException e) { // Shouldn't happen since we just parsed a decimal
throwRecognitionException(t);
}
}
}
break;
case 6 :
// PhoenixSQL.g:873:9: NULL
{
match(input,NULL,FOLLOW_NULL_in_literal6223); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.literal(null);}
}
break;
case 7 :
// PhoenixSQL.g:874:9: TRUE
{
match(input,TRUE,FOLLOW_TRUE_in_literal6235); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.literal(Boolean.TRUE);}
}
break;
case 8 :
// PhoenixSQL.g:875:9: FALSE
{
match(input,FALSE,FOLLOW_FALSE_in_literal6248); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.literal(Boolean.FALSE);}
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "literal"
// $ANTLR start "int_literal"
// PhoenixSQL.g:878:1: int_literal returns [LiteralParseNode ret] : n= NUMBER ;
public final LiteralParseNode int_literal() throws RecognitionException {
LiteralParseNode ret = null;
Token n=null;
try {
// PhoenixSQL.g:879:5: (n= NUMBER )
// PhoenixSQL.g:879:9: n= NUMBER
{
n=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_int_literal6279); if (state.failed) return ret;
if ( state.backtracking==0 ) {
try {
Long v = Long.valueOf(n.getText());
if (v >= Integer.MIN_VALUE && v <= Integer.MAX_VALUE) {
ret = factory.literal(v.intValue());
} else {
ret = factory.literal(v);
}
} catch (NumberFormatException e) { // Shouldn't happen since we just parsed a number
throwRecognitionException(n);
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "int_literal"
// $ANTLR start "long_literal"
// PhoenixSQL.g:893:1: long_literal returns [LiteralParseNode ret] : l= LONG ;
public final LiteralParseNode long_literal() throws RecognitionException {
LiteralParseNode ret = null;
Token l=null;
try {
// PhoenixSQL.g:894:5: (l= LONG )
// PhoenixSQL.g:894:9: l= LONG
{
l=(Token)match(input,LONG,FOLLOW_LONG_in_long_literal6306); if (state.failed) return ret;
if ( state.backtracking==0 ) {
try {
String lt = l.getText();
Long v = Long.valueOf(lt.substring(0, lt.length() - 1));
ret = factory.literal(v);
} catch (NumberFormatException e) { // Shouldn't happen since we just parsed a number
throwRecognitionException(l);
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "long_literal"
// $ANTLR start "double_literal"
// PhoenixSQL.g:905:1: double_literal returns [LiteralParseNode ret] : d= DOUBLE ;
public final LiteralParseNode double_literal() throws RecognitionException {
LiteralParseNode ret = null;
Token d=null;
try {
// PhoenixSQL.g:906:5: (d= DOUBLE )
// PhoenixSQL.g:906:9: d= DOUBLE
{
d=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_double_literal6333); if (state.failed) return ret;
if ( state.backtracking==0 ) {
try {
String dt = d.getText();
Double v = Double.valueOf(dt.substring(0, dt.length() - 1));
ret = factory.literal(v);
} catch (NumberFormatException e) { // Shouldn't happen since we just parsed a number
throwRecognitionException(d);
}
}
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "double_literal"
// $ANTLR start "bind_name"
// PhoenixSQL.g:918:1: bind_name returns [String ret] : (n= BIND_NAME | QUESTION );
public final String bind_name() throws RecognitionException {
String ret = null;
Token n=null;
try {
// PhoenixSQL.g:919:5: (n= BIND_NAME | QUESTION )
int alt149=2;
int LA149_0 = input.LA(1);
if ( (LA149_0==BIND_NAME) ) {
alt149=1;
}
else if ( (LA149_0==QUESTION) ) {
alt149=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 149, 0, input);
throw nvae;
}
switch (alt149) {
case 1 :
// PhoenixSQL.g:919:9: n= BIND_NAME
{
n=(Token)match(input,BIND_NAME,FOLLOW_BIND_NAME_in_bind_name6361); if (state.failed) return ret;
if ( state.backtracking==0 ) { String bind = n.getText().substring(1); updateBind(bind); ret = bind; }
}
break;
case 2 :
// PhoenixSQL.g:920:9: QUESTION
{
match(input,QUESTION,FOLLOW_QUESTION_in_bind_name6374); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = nextBind(); }
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "bind_name"
// $ANTLR start "identifier"
// PhoenixSQL.g:924:1: identifier returns [String ret] : c= parseNoReserved ;
public final String identifier() throws RecognitionException {
String ret = null;
String c =null;
try {
// PhoenixSQL.g:925:5: (c= parseNoReserved )
// PhoenixSQL.g:925:9: c= parseNoReserved
{
pushFollow(FOLLOW_parseNoReserved_in_identifier6403);
c=parseNoReserved();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = c; }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "identifier"
// $ANTLR start "parseNoReserved"
// PhoenixSQL.g:928:1: parseNoReserved returns [String ret] : n= NAME ;
public final String parseNoReserved() throws RecognitionException {
String ret = null;
Token n=null;
try {
// PhoenixSQL.g:929:5: (n= NAME )
// PhoenixSQL.g:929:9: n= NAME
{
n=(Token)match(input,NAME,FOLLOW_NAME_in_parseNoReserved6430); if (state.failed) return ret;
if ( state.backtracking==0 ) { ret = n.getText(); }
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "parseNoReserved"
// $ANTLR start "case_statement"
// PhoenixSQL.g:932:1: case_statement returns [ParseNode ret] : ( CASE e1= expression ( WHEN e2= expression THEN t= expression )+ ( ELSE el= expression )? END | CASE ( WHEN c= expression THEN t= expression )+ ( ELSE el= expression )? END );
public final ParseNode case_statement() throws RecognitionException {
ParseNode ret = null;
ParseNode e1 =null;
ParseNode e2 =null;
ParseNode t =null;
ParseNode el =null;
ParseNode c =null;
List w = new ArrayList(4);
try {
// PhoenixSQL.g:934:5: ( CASE e1= expression ( WHEN e2= expression THEN t= expression )+ ( ELSE el= expression )? END | CASE ( WHEN c= expression THEN t= expression )+ ( ELSE el= expression )? END )
int alt154=2;
int LA154_0 = input.LA(1);
if ( (LA154_0==CASE) ) {
int LA154_1 = input.LA(2);
if ( (LA154_1==ARRAY||LA154_1==BIND_NAME||(LA154_1 >= CASE && LA154_1 <= CAST)||LA154_1==CURRENT||LA154_1==DECIMAL||LA154_1==DOUBLE||LA154_1==EXISTS||LA154_1==FALSE||(LA154_1 >= LONG && LA154_1 <= LPAREN)||LA154_1==MINUS||(LA154_1 >= NAME && LA154_1 <= NEXT)||(LA154_1 >= NOT && LA154_1 <= NULL)||LA154_1==NUMBER||LA154_1==QUESTION||LA154_1==STRING_LITERAL||LA154_1==TRUE) ) {
alt154=1;
}
else if ( (LA154_1==WHEN) ) {
alt154=2;
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 154, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return ret;}
NoViableAltException nvae =
new NoViableAltException("", 154, 0, input);
throw nvae;
}
switch (alt154) {
case 1 :
// PhoenixSQL.g:934:7: CASE e1= expression ( WHEN e2= expression THEN t= expression )+ ( ELSE el= expression )? END
{
match(input,CASE,FOLLOW_CASE_in_case_statement6457); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6461);
e1=expression();
state._fsp--;
if (state.failed) return ret;
// PhoenixSQL.g:934:26: ( WHEN e2= expression THEN t= expression )+
int cnt150=0;
loop150:
while (true) {
int alt150=2;
int LA150_0 = input.LA(1);
if ( (LA150_0==WHEN) ) {
alt150=1;
}
switch (alt150) {
case 1 :
// PhoenixSQL.g:934:27: WHEN e2= expression THEN t= expression
{
match(input,WHEN,FOLLOW_WHEN_in_case_statement6464); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6468);
e2=expression();
state._fsp--;
if (state.failed) return ret;
match(input,THEN,FOLLOW_THEN_in_case_statement6470); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6474);
t=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {w.add(t);w.add(factory.equal(e1,e2));}
}
break;
default :
if ( cnt150 >= 1 ) break loop150;
if (state.backtracking>0) {state.failed=true; return ret;}
EarlyExitException eee = new EarlyExitException(150, input);
throw eee;
}
cnt150++;
}
// PhoenixSQL.g:934:106: ( ELSE el= expression )?
int alt151=2;
int LA151_0 = input.LA(1);
if ( (LA151_0==ELSE) ) {
alt151=1;
}
switch (alt151) {
case 1 :
// PhoenixSQL.g:934:107: ELSE el= expression
{
match(input,ELSE,FOLLOW_ELSE_in_case_statement6481); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6485);
el=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {w.add(el);}
}
break;
}
match(input,END,FOLLOW_END_in_case_statement6491); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.caseWhen(w);}
}
break;
case 2 :
// PhoenixSQL.g:935:7: CASE ( WHEN c= expression THEN t= expression )+ ( ELSE el= expression )? END
{
match(input,CASE,FOLLOW_CASE_in_case_statement6501); if (state.failed) return ret;
// PhoenixSQL.g:935:12: ( WHEN c= expression THEN t= expression )+
int cnt152=0;
loop152:
while (true) {
int alt152=2;
int LA152_0 = input.LA(1);
if ( (LA152_0==WHEN) ) {
alt152=1;
}
switch (alt152) {
case 1 :
// PhoenixSQL.g:935:13: WHEN c= expression THEN t= expression
{
match(input,WHEN,FOLLOW_WHEN_in_case_statement6504); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6508);
c=expression();
state._fsp--;
if (state.failed) return ret;
match(input,THEN,FOLLOW_THEN_in_case_statement6510); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6514);
t=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {w.add(t);w.add(c);}
}
break;
default :
if ( cnt152 >= 1 ) break loop152;
if (state.backtracking>0) {state.failed=true; return ret;}
EarlyExitException eee = new EarlyExitException(152, input);
throw eee;
}
cnt152++;
}
// PhoenixSQL.g:935:72: ( ELSE el= expression )?
int alt153=2;
int LA153_0 = input.LA(1);
if ( (LA153_0==ELSE) ) {
alt153=1;
}
switch (alt153) {
case 1 :
// PhoenixSQL.g:935:73: ELSE el= expression
{
match(input,ELSE,FOLLOW_ELSE_in_case_statement6521); if (state.failed) return ret;
pushFollow(FOLLOW_expression_in_case_statement6525);
el=expression();
state._fsp--;
if (state.failed) return ret;
if ( state.backtracking==0 ) {w.add(el);}
}
break;
}
match(input,END,FOLLOW_END_in_case_statement6531); if (state.failed) return ret;
if ( state.backtracking==0 ) {ret = factory.caseWhen(w);}
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return ret;
}
// $ANTLR end "case_statement"
// $ANTLR start synpred1_PhoenixSQL
public final void synpred1_PhoenixSQL_fragment() throws RecognitionException {
// PhoenixSQL.g:702:9: ( ( NOT )? boolean_expression )
// PhoenixSQL.g:702:10: ( NOT )? boolean_expression
{
// PhoenixSQL.g:702:10: ( NOT )?
int alt155=2;
int LA155_0 = input.LA(1);
if ( (LA155_0==NOT) ) {
alt155=1;
}
switch (alt155) {
case 1 :
// PhoenixSQL.g:702:10: NOT
{
match(input,NOT,FOLLOW_NOT_in_synpred1_PhoenixSQL4496); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_boolean_expression_in_synpred1_PhoenixSQL4499);
boolean_expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred1_PhoenixSQL
// Delegated rules
public final boolean synpred1_PhoenixSQL() {
state.backtracking++;
int start = input.mark();
try {
synpred1_PhoenixSQL_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public static final BitSet FOLLOW_oneStatement_in_nextStatement876 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_nextStatement880 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOF_in_nextStatement889 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oneStatement_in_statement915 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_statement919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELECT_in_query943 = new BitSet(new long[]{0x0050120900189220L,0x20001002CE460000L,0x0000000000000004L});
public static final BitSet FOLLOW_hinted_select_node_in_query947 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_query949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELECT_in_oneStatement976 = new BitSet(new long[]{0x0050120900189220L,0x20001002CE460000L,0x0000000000000004L});
public static final BitSet FOLLOW_hinted_select_node_in_oneStatement980 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_non_select_node_in_oneStatement996 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_upsert_node_in_non_select_node1037 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_delete_node_in_non_select_node1049 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_create_table_node_in_non_select_node1061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_create_view_node_in_non_select_node1073 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_create_index_node_in_non_select_node1085 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_drop_table_node_in_non_select_node1097 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_drop_index_node_in_non_select_node1109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alter_index_node_in_non_select_node1121 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alter_table_node_in_non_select_node1133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_create_sequence_node_in_non_select_node1143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_drop_sequence_node_in_non_select_node1153 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_update_statistics_node_in_non_select_node1165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_explain_node_in_non_select_node1177 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXPLAIN_in_explain_node1210 = new BitSet(new long[]{0x0020801080000040L,0x0004000000000000L,0x0000000000000030L});
public static final BitSet FOLLOW_oneStatement_in_explain_node1214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CREATE_in_create_table_node1240 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_TABLE_in_create_table_node1242 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_create_table_node1245 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_NOT_in_create_table_node1247 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_create_table_node1251 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_create_table_node1257 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_create_table_node1269 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_defs_in_create_table_node1273 = new BitSet(new long[]{0x0000000044000000L,0x0001000000000000L});
public static final BitSet FOLLOW_pk_constraint_in_create_table_node1278 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_create_table_node1282 = new BitSet(new long[]{0x0000000000000002L,0x0400000004000000L});
public static final BitSet FOLLOW_fam_properties_in_create_table_node1296 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_SPLIT_in_create_table_node1309 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_ON_in_create_table_node1311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_value_expression_list_in_create_table_node1315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CREATE_in_create_view_node1351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_VIEW_in_create_view_node1353 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_create_view_node1356 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_NOT_in_create_view_node1358 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_create_view_node1362 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_create_view_node1368 = new BitSet(new long[]{0x0000000000000402L,0x0000000004040000L});
public static final BitSet FOLLOW_LPAREN_in_create_view_node1380 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_defs_in_create_view_node1384 = new BitSet(new long[]{0x0000000044000000L,0x0001000000000000L});
public static final BitSet FOLLOW_pk_constraint_in_create_view_node1389 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_create_view_node1393 = new BitSet(new long[]{0x0000000000000402L,0x0000000004000000L});
public static final BitSet FOLLOW_AS_in_create_view_node1407 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_SELECT_in_create_view_node1409 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_create_view_node1411 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_FROM_in_create_view_node1423 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_create_view_node1427 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L,0x0000000000000800L});
public static final BitSet FOLLOW_WHERE_in_create_view_node1440 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_create_view_node1444 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L});
public static final BitSet FOLLOW_fam_properties_in_create_view_node1462 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CREATE_in_create_index_node1498 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_INDEX_in_create_index_node1500 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_create_index_node1503 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_NOT_in_create_index_node1505 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_create_index_node1509 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_index_name_in_create_index_node1515 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_ON_in_create_index_node1517 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_create_index_node1521 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_create_index_node1532 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_index_pk_constraint_in_create_index_node1536 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_create_index_node1538 = new BitSet(new long[]{0x0000000000000002L,0x0400000004000008L});
public static final BitSet FOLLOW_INCLUDE_in_create_index_node1550 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_create_index_node1553 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_names_in_create_index_node1557 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_create_index_node1559 = new BitSet(new long[]{0x0000000000000002L,0x0400000004000000L});
public static final BitSet FOLLOW_fam_properties_in_create_index_node1575 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_SPLIT_in_create_index_node1588 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_ON_in_create_index_node1590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_value_expression_list_in_create_index_node1594 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CREATE_in_create_sequence_node1630 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_SEQUENCE_in_create_sequence_node1632 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_create_sequence_node1636 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_NOT_in_create_sequence_node1638 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_create_sequence_node1642 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_create_sequence_node1648 = new BitSet(new long[]{0x0000000200020002L,0x0800000000A00010L});
public static final BitSet FOLLOW_START_in_create_sequence_node1659 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000001004L});
public static final BitSet FOLLOW_WITH_in_create_sequence_node1661 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_create_sequence_node1666 = new BitSet(new long[]{0x0000000200020002L,0x0000000000A00010L});
public static final BitSet FOLLOW_INCREMENT_in_create_sequence_node1679 = new BitSet(new long[]{0x0040100900198200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_BY_in_create_sequence_node1681 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_create_sequence_node1686 = new BitSet(new long[]{0x0000000200020002L,0x0000000000A00000L});
public static final BitSet FOLLOW_MINVALUE_in_create_sequence_node1699 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_create_sequence_node1703 = new BitSet(new long[]{0x0000000200020002L,0x0000000000200000L});
public static final BitSet FOLLOW_MAXVALUE_in_create_sequence_node1716 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_create_sequence_node1720 = new BitSet(new long[]{0x0000000200020002L});
public static final BitSet FOLLOW_CYCLE_in_create_sequence_node1735 = new BitSet(new long[]{0x0000000000020002L});
public static final BitSet FOLLOW_CACHE_in_create_sequence_node1749 = new BitSet(new long[]{0x0000000000008000L,0x0000100200000000L});
public static final BitSet FOLLOW_int_literal_or_bind_in_create_sequence_node1753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_in_int_literal_or_bind1784 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_expression_in_int_literal_or_bind1796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DROP_in_drop_sequence_node1822 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_SEQUENCE_in_drop_sequence_node1824 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_drop_sequence_node1828 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_drop_sequence_node1832 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_drop_sequence_node1838 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_pk_constraint1867 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_CONSTRAINT_in_pk_constraint1870 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_pk_constraint1874 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_PRIMARY_in_pk_constraint1876 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_KEY_in_pk_constraint1878 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_pk_constraint1880 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_col_name_with_sort_order_list_in_pk_constraint1884 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_pk_constraint1886 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_col_name_with_sort_order_in_col_name_with_sort_order_list1917 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_col_name_with_sort_order_list1923 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_col_name_with_sort_order_in_col_name_with_sort_order_list1929 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_identifier_in_col_name_with_sort_order1955 = new BitSet(new long[]{0x0000004000000802L});
public static final BitSet FOLLOW_ASC_in_col_name_with_sort_order1960 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DESC_in_col_name_with_sort_order1964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_col_def_name_with_sort_order_list_in_index_pk_constraint1991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_col_def_name_with_sort_order_in_col_def_name_with_sort_order_list2022 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_col_def_name_with_sort_order_list2028 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_col_def_name_with_sort_order_in_col_def_name_with_sort_order_list2034 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_column_name_in_col_def_name_with_sort_order2060 = new BitSet(new long[]{0x0000004000000802L});
public static final BitSet FOLLOW_ASC_in_col_def_name_with_sort_order2065 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DESC_in_col_def_name_with_sort_order2069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fam_prop_name_in_fam_properties2097 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_EQ_in_fam_properties2099 = new BitSet(new long[]{0x0040100800000000L,0x2000000280020000L,0x0000000000000004L});
public static final BitSet FOLLOW_prop_value_in_fam_properties2103 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_fam_properties2109 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_fam_prop_name_in_fam_properties2113 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_EQ_in_fam_properties2115 = new BitSet(new long[]{0x0040100800000000L,0x2000000280020000L,0x0000000000000004L});
public static final BitSet FOLLOW_prop_value_in_fam_properties2119 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_identifier_in_fam_prop_name2149 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_fam_prop_name2163 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_fam_prop_name2165 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_fam_prop_name2169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_prop_value2200 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_column_name2231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_column_name2245 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_column_name2247 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_column_name2251 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_column_name_in_column_names2283 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_column_names2289 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_name_in_column_names2295 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_DROP_in_drop_table_node2322 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_VIEW_in_drop_table_node2327 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_TABLE_in_drop_table_node2331 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_drop_table_node2335 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_drop_table_node2339 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_drop_table_node2345 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_CASCADE_in_drop_table_node2350 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DROP_in_drop_index_node2384 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_INDEX_in_drop_index_node2386 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_drop_index_node2389 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_drop_index_node2393 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_index_name_in_drop_index_node2399 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_ON_in_drop_index_node2401 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_drop_index_node2405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALTER_in_alter_index_node2435 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_INDEX_in_alter_index_node2437 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_alter_index_node2440 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_alter_index_node2444 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_index_name_in_alter_index_node2450 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_ON_in_alter_index_node2452 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_alter_index_node2456 = new BitSet(new long[]{0x0000010000000000L,0x0000400000000000L,0x0000000000000048L});
public static final BitSet FOLLOW_set_in_alter_index_node2460 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALTER_in_alter_table_node2506 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_TABLE_in_alter_table_node2509 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_VIEW_in_alter_table_node2515 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_alter_table_node2520 = new BitSet(new long[]{0x0000800000000010L,0x0020000000000000L});
public static final BitSet FOLLOW_DROP_in_alter_table_node2533 = new BitSet(new long[]{0x0000000001000000L});
public static final BitSet FOLLOW_COLUMN_in_alter_table_node2535 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_alter_table_node2538 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_alter_table_node2542 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_names_in_alter_table_node2548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ADD_in_alter_table_node2554 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000001L});
public static final BitSet FOLLOW_IF_in_alter_table_node2557 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_NOT_in_alter_table_node2559 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_EXISTS_in_alter_table_node2563 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_defs_in_alter_table_node2570 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L});
public static final BitSet FOLLOW_properties_in_alter_table_node2576 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SET_in_alter_table_node2584 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_properties_in_alter_table_node2589 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UPDATE_in_update_statistics_node2623 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_STATISTICS_in_update_statistics_node2625 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_update_statistics_node2629 = new BitSet(new long[]{0x0000000002000022L,0x0000000000000020L});
public static final BitSet FOLLOW_INDEX_in_update_statistics_node2634 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALL_in_update_statistics_node2640 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLUMNS_in_update_statistics_node2646 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_prop_name2674 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prop_name_in_properties2708 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_EQ_in_properties2710 = new BitSet(new long[]{0x0040100800000000L,0x2000000280020000L,0x0000000000000004L});
public static final BitSet FOLLOW_prop_value_in_properties2714 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_properties2720 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_prop_name_in_properties2724 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_EQ_in_properties2726 = new BitSet(new long[]{0x0040100800000000L,0x2000000280020000L,0x0000000000000004L});
public static final BitSet FOLLOW_prop_value_in_properties2730 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_column_def_in_column_defs2765 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_column_defs2771 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_column_def_in_column_defs2777 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_column_name_in_column_def2803 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_column_def2807 = new BitSet(new long[]{0x0000000000000202L,0x00000800C00C0000L});
public static final BitSet FOLLOW_LPAREN_in_column_def2810 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_column_def2814 = new BitSet(new long[]{0x0000000004000000L,0x0001000000000000L});
public static final BitSet FOLLOW_COMMA_in_column_def2817 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_column_def2821 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_column_def2825 = new BitSet(new long[]{0x0000000000000202L,0x00000800C0080000L});
public static final BitSet FOLLOW_ARRAY_in_column_def2831 = new BitSet(new long[]{0x0000000000000002L,0x00000800C0080000L});
public static final BitSet FOLLOW_LSQUARE_in_column_def2837 = new BitSet(new long[]{0x0000000000000000L,0x0002000200000000L});
public static final BitSet FOLLOW_NUMBER_in_column_def2842 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_RSQUARE_in_column_def2846 = new BitSet(new long[]{0x0000000000000002L,0x00000800C0000000L});
public static final BitSet FOLLOW_NOT_in_column_def2853 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_NULL_in_column_def2858 = new BitSet(new long[]{0x0000000000000002L,0x0000080000000000L});
public static final BitSet FOLLOW_PRIMARY_in_column_def2865 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_KEY_in_column_def2867 = new BitSet(new long[]{0x0000004000000802L});
public static final BitSet FOLLOW_ASC_in_column_def2872 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DESC_in_column_def2876 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dyn_column_def_in_dyn_column_defs2920 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_dyn_column_defs2926 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_dyn_column_def_in_dyn_column_defs2932 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_column_name_in_dyn_column_def2958 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_dyn_column_def2962 = new BitSet(new long[]{0x0000000000000202L,0x00000000000C0000L});
public static final BitSet FOLLOW_LPAREN_in_dyn_column_def2965 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_dyn_column_def2969 = new BitSet(new long[]{0x0000000004000000L,0x0001000000000000L});
public static final BitSet FOLLOW_COMMA_in_dyn_column_def2972 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_dyn_column_def2976 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_dyn_column_def2980 = new BitSet(new long[]{0x0000000000000202L,0x0000000000080000L});
public static final BitSet FOLLOW_ARRAY_in_dyn_column_def2986 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_LSQUARE_in_dyn_column_def2992 = new BitSet(new long[]{0x0000000000000000L,0x0002000200000000L});
public static final BitSet FOLLOW_NUMBER_in_dyn_column_def2997 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_RSQUARE_in_dyn_column_def3001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_column_name_in_dyn_column_name_or_def3038 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_dyn_column_name_or_def3043 = new BitSet(new long[]{0x0000000000000202L,0x00000000000C0000L});
public static final BitSet FOLLOW_LPAREN_in_dyn_column_name_or_def3046 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_dyn_column_name_or_def3050 = new BitSet(new long[]{0x0000000004000000L,0x0001000000000000L});
public static final BitSet FOLLOW_COMMA_in_dyn_column_name_or_def3053 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_dyn_column_name_or_def3057 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_dyn_column_name_or_def3061 = new BitSet(new long[]{0x0000000000000202L,0x0000000000080000L});
public static final BitSet FOLLOW_ARRAY_in_dyn_column_name_or_def3067 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_LSQUARE_in_dyn_column_name_or_def3073 = new BitSet(new long[]{0x0000000000000000L,0x0002000200000000L});
public static final BitSet FOLLOW_NUMBER_in_dyn_column_name_or_def3078 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_RSQUARE_in_dyn_column_name_or_def3082 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELECT_in_select_expression3120 = new BitSet(new long[]{0x0050120900189220L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_select_node_in_select_expression3124 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_expression_in_subquery_expression3154 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DISTINCT_in_select_node3191 = new BitSet(new long[]{0x0050100900189200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_ALL_in_select_node3195 = new BitSet(new long[]{0x0050100900189200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_select_list_in_select_node3201 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_FROM_in_select_node3211 = new BitSet(new long[]{0x0000000000008000L,0x0000100004040000L});
public static final BitSet FOLLOW_parseFrom_in_select_node3215 = new BitSet(new long[]{0x5000000000000002L,0x0000001000010000L,0x0000000000000800L});
public static final BitSet FOLLOW_WHERE_in_select_node3226 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_select_node3230 = new BitSet(new long[]{0x5000000000000002L,0x0000001000010000L});
public static final BitSet FOLLOW_GROUP_in_select_node3243 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_BY_in_select_node3245 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_group_by_in_select_node3249 = new BitSet(new long[]{0x4000000000000002L,0x0000001000010000L});
public static final BitSet FOLLOW_HAVING_in_select_node3262 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_select_node3266 = new BitSet(new long[]{0x0000000000000002L,0x0000001000010000L});
public static final BitSet FOLLOW_ORDER_in_select_node3279 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_BY_in_select_node3281 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_order_by_in_select_node3285 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
public static final BitSet FOLLOW_LIMIT_in_select_node3298 = new BitSet(new long[]{0x0000000000008000L,0x0000100200000000L});
public static final BitSet FOLLOW_limit_in_select_node3302 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_hintClause_in_hinted_select_node3344 = new BitSet(new long[]{0x0050120900189220L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_select_node_in_hinted_select_node3359 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UPSERT_in_upsert_node3393 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000080L});
public static final BitSet FOLLOW_hintClause_in_upsert_node3398 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_INTO_in_upsert_node3402 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_upsert_node3406 = new BitSet(new long[]{0x0000000000000000L,0x0004000000040000L,0x0000000000000100L});
public static final BitSet FOLLOW_LPAREN_in_upsert_node3417 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_upsert_column_refs_in_upsert_node3421 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_upsert_node3423 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_VALUES_in_upsert_node3437 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_upsert_node3439 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_one_or_more_expressions_in_upsert_node3443 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_upsert_node3445 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_expression_in_upsert_node3452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dyn_column_name_or_def_in_upsert_column_refs3491 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_upsert_column_refs3504 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_dyn_column_name_or_def_in_upsert_column_refs3508 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_DELETE_in_delete_node3534 = new BitSet(new long[]{0x0400000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_hintClause_in_delete_node3539 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_FROM_in_delete_node3543 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_delete_node3547 = new BitSet(new long[]{0x0000000000000002L,0x0000001000010000L,0x0000000000000800L});
public static final BitSet FOLLOW_WHERE_in_delete_node3558 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_delete_node3562 = new BitSet(new long[]{0x0000000000000002L,0x0000001000010000L});
public static final BitSet FOLLOW_ORDER_in_delete_node3575 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_BY_in_delete_node3577 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_order_by_in_delete_node3581 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
public static final BitSet FOLLOW_LIMIT_in_delete_node3594 = new BitSet(new long[]{0x0000000000008000L,0x0000100200000000L});
public static final BitSet FOLLOW_limit_in_delete_node3598 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_expression_in_limit3633 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_in_limit3645 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_HINT_in_hintClause3675 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_selectable_in_select_list3707 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_select_list3712 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_selectable_in_select_list3716 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_ASTERISK_in_select_list3728 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_selectable3757 = new BitSet(new long[]{0x0000000000000402L,0x0000000004000000L});
public static final BitSet FOLLOW_parseAlias_in_selectable3762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_selectable3777 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_selectable3779 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_selectable3781 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_selectable3796 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_selectable3798 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_selectable3802 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_selectable3804 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_selectable3806 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_group_by3839 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_group_by3852 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_group_by3858 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_parseOrderByField_in_order_by3892 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_order_by3905 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_parseOrderByField_in_order_by3911 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_expression_in_parseOrderByField3948 = new BitSet(new long[]{0x0000004000000802L,0x0000000100000000L});
public static final BitSet FOLLOW_ASC_in_parseOrderByField3960 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_DESC_in_parseOrderByField3966 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_NULLS_in_parseOrderByField3981 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_FIRST_in_parseOrderByField3984 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LAST_in_parseOrderByField3990 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_table_list_in_parseFrom4030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_table_ref_in_table_list4061 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_table_list4066 = new BitSet(new long[]{0x0000000000008000L,0x0000100004040000L});
public static final BitSet FOLLOW_table_ref_in_table_list4070 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_table_factor_in_table_ref4094 = new BitSet(new long[]{0x0800000000000002L,0x0000800000002240L});
public static final BitSet FOLLOW_join_type_in_table_ref4101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_JOIN_in_table_ref4103 = new BitSet(new long[]{0x0000000000008000L,0x0000100004040000L});
public static final BitSet FOLLOW_table_factor_in_table_ref4107 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_ON_in_table_ref4109 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_table_ref4113 = new BitSet(new long[]{0x0800000000000002L,0x0000800000002240L});
public static final BitSet FOLLOW_LPAREN_in_table_factor4137 = new BitSet(new long[]{0x0000000000008000L,0x0000100004040000L});
public static final BitSet FOLLOW_table_list_in_table_factor4141 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_table_factor4143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_name_in_table_factor4157 = new BitSet(new long[]{0x0000000000000402L,0x0000000004000000L});
public static final BitSet FOLLOW_AS_in_table_factor4161 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_table_factor4167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_from_table_name_in_table_factor4184 = new BitSet(new long[]{0x0000000000000402L,0x0000000004040000L});
public static final BitSet FOLLOW_AS_in_table_factor4188 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_table_factor4194 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_table_factor4199 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_dyn_column_defs_in_table_factor4203 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_table_factor4205 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_table_factor4219 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_SELECT_in_table_factor4221 = new BitSet(new long[]{0x0050120900189220L,0x20001002CE460000L,0x0000000000000004L});
public static final BitSet FOLLOW_hinted_select_node_in_table_factor4225 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_table_factor4227 = new BitSet(new long[]{0x0000000000000402L,0x0000000004000000L});
public static final BitSet FOLLOW_AS_in_table_factor4231 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_table_factor4237 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INNER_in_join_type4264 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LEFT_in_join_type4279 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
public static final BitSet FOLLOW_OUTER_in_join_type4281 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RIGHT_in_join_type4296 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
public static final BitSet FOLLOW_OUTER_in_join_type4298 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FULL_in_join_type4312 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
public static final BitSet FOLLOW_OUTER_in_join_type4315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AS_in_parseAlias4346 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_parseNoReserved_in_parseAlias4351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_or_expression_in_expression4379 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_and_expression_in_or_expression4411 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_OR_in_or_expression4416 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_and_expression_in_or_expression4420 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_not_expression_in_and_expression4456 = new BitSet(new long[]{0x0000000000000082L});
public static final BitSet FOLLOW_AND_in_and_expression4461 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_not_expression_in_and_expression4465 = new BitSet(new long[]{0x0000000000000082L});
public static final BitSet FOLLOW_NOT_in_not_expression4507 = new BitSet(new long[]{0x0050100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_boolean_expression_in_not_expression4512 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_not_expression4526 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_not_expression4529 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_not_expression4533 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_not_expression4535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_in_comparison_op4555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_comparison_op4562 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GT_in_comparison_op4569 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_comparison_op4576 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_EQ_in_comparison_op4578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GT_in_comparison_op4585 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_EQ_in_comparison_op4587 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_comparison_op4594 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4625 = new BitSet(new long[]{0x2008000000004002L,0x0000000070108106L});
public static final BitSet FOLLOW_comparison_op_in_boolean_expression4631 = new BitSet(new long[]{0x0040100900188320L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_boolean_expression4641 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_subquery_expression_in_boolean_expression4645 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_boolean_expression4647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALL_in_boolean_expression4656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_ANY_in_boolean_expression4662 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_boolean_expression4665 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4669 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_boolean_expression4671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALL_in_boolean_expression4681 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_ANY_in_boolean_expression4687 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_boolean_expression4690 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_subquery_expression_in_boolean_expression4694 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_boolean_expression4696 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IS_in_boolean_expression4726 = new BitSet(new long[]{0x0000000000000000L,0x00000000C0000000L});
public static final BitSet FOLLOW_NOT_in_boolean_expression4730 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_NULL_in_boolean_expression4733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_boolean_expression4764 = new BitSet(new long[]{0x0000000000004000L,0x0000000000008006L});
public static final BitSet FOLLOW_LIKE_in_boolean_expression4769 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4773 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ILIKE_in_boolean_expression4811 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BETWEEN_in_boolean_expression4853 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4857 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_AND_in_boolean_expression4859 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_boolean_expression4863 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_boolean_expression4902 = new BitSet(new long[]{0x0000000000008000L,0x0000100000040000L});
public static final BitSet FOLLOW_bind_expression_in_boolean_expression4908 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_boolean_expression4949 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_subquery_expression_in_boolean_expression4953 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_boolean_expression4955 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_boolean_expression4996 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_one_or_more_expressions_in_boolean_expression5000 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_boolean_expression5002 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXISTS_in_boolean_expression5102 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_boolean_expression5104 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_subquery_expression_in_boolean_expression5108 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_boolean_expression5110 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_name_in_bind_expression5138 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_add_expression_in_value_expression5169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subtract_expression_in_add_expression5200 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
public static final BitSet FOLLOW_PLUS_in_add_expression5205 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_subtract_expression_in_add_expression5209 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
public static final BitSet FOLLOW_concat_expression_in_subtract_expression5244 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
public static final BitSet FOLLOW_MINUS_in_subtract_expression5249 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_concat_expression_in_subtract_expression5253 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
public static final BitSet FOLLOW_multiply_divide_modulo_expression_in_concat_expression5288 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_CONCAT_in_concat_expression5293 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_multiply_divide_modulo_expression_in_concat_expression5297 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_negate_expression_in_multiply_divide_modulo_expression5332 = new BitSet(new long[]{0x0000040000001002L,0x0000010000000000L});
public static final BitSet FOLLOW_set_in_multiply_divide_modulo_expression5348 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_negate_expression_in_multiply_divide_modulo_expression5362 = new BitSet(new long[]{0x0000040000001002L,0x0000010000000000L});
public static final BitSet FOLLOW_MINUS_in_negate_expression5410 = new BitSet(new long[]{0x0040100900188200L,0x200010028C060000L,0x0000000000000004L});
public static final BitSet FOLLOW_array_expression_in_negate_expression5415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_in_array_expression5443 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_LSQUARE_in_array_expression5446 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_array_expression5450 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_RSQUARE_in_array_expression5452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_or_bind_in_term5485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_term5499 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARRAY_in_term5513 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_LSQUARE_in_term5515 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_one_or_more_expressions_in_term5519 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_RSQUARE_in_term5521 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_table_name_in_term5535 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_term5537 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_term5541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_term5555 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_term5557 = new BitSet(new long[]{0x0050100904188200L,0x20011002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_zero_or_more_expressions_in_term5561 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5563 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_WITHIN_in_term5568 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_GROUP_in_term5570 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_term5572 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_ORDER_in_term5574 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_BY_in_term5576 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_one_or_more_expressions_in_term5580 = new BitSet(new long[]{0x0000004000000800L});
public static final BitSet FOLLOW_ASC_in_term5585 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_DESC_in_term5589 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5592 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_term5617 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_term5619 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_term5623 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5625 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_term5649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_term5651 = new BitSet(new long[]{0x0000020000000000L});
public static final BitSet FOLLOW_DISTINCT_in_term5655 = new BitSet(new long[]{0x0050100904188200L,0x20011002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_zero_or_more_expressions_in_term5659 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5661 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_case_statement_in_term5684 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_term5696 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_one_or_more_expressions_in_term5700 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CAST_in_term5720 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_term5722 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_term5726 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_AS_in_term5728 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_term5732 = new BitSet(new long[]{0x0000000000000200L,0x00010000000C0000L});
public static final BitSet FOLLOW_LPAREN_in_term5735 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_term5739 = new BitSet(new long[]{0x0000000004000000L,0x0001000000000000L});
public static final BitSet FOLLOW_COMMA_in_term5742 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_NUMBER_in_term5746 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5750 = new BitSet(new long[]{0x0000000000000200L,0x0001000000080000L});
public static final BitSet FOLLOW_ARRAY_in_term5757 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LSQUARE_in_term5762 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_RSQUARE_in_term5764 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_term5769 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEXT_in_term5792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_CURRENT_in_term5796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_VALUE_in_term5799 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_FOR_in_term5801 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_from_table_name_in_term5805 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_one_or_more_expressions5850 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_one_or_more_expressions5856 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_one_or_more_expressions5862 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_expression_in_zero_or_more_expressions5894 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_COMMA_in_zero_or_more_expressions5902 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_zero_or_more_expressions5908 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_LPAREN_in_value_expression_list5935 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_value_expression_list5941 = new BitSet(new long[]{0x0000000004000000L,0x0001000000000000L});
public static final BitSet FOLLOW_COMMA_in_value_expression_list5947 = new BitSet(new long[]{0x0040100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_value_expression_in_value_expression_list5953 = new BitSet(new long[]{0x0000000004000000L,0x0001000000000000L});
public static final BitSet FOLLOW_RPAREN_in_value_expression_list5960 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_index_name5981 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_table_name6009 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_table_name6023 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_table_name6025 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_table_name6029 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_from_table_name6057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_from_table_name6071 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_DOT_in_from_table_name6073 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_identifier_in_from_table_name6077 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_literal_or_bind6109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_name_in_literal_or_bind6123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_literal6155 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_in_literal6169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_literal6183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_double_literal_in_literal6197 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DECIMAL_in_literal6211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NULL_in_literal6223 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRUE_in_literal6235 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FALSE_in_literal6248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NUMBER_in_int_literal6279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LONG_in_long_literal6306 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_double_literal6333 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BIND_NAME_in_bind_name6361 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QUESTION_in_bind_name6374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parseNoReserved_in_identifier6403 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_parseNoReserved6430 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_case_statement6457 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_WHEN_in_case_statement6464 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6468 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_THEN_in_case_statement6470 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6474 = new BitSet(new long[]{0x0003000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_ELSE_in_case_statement6481 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6485 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_END_in_case_statement6491 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_case_statement6501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_WHEN_in_case_statement6504 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_THEN_in_case_statement6510 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6514 = new BitSet(new long[]{0x0003000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_ELSE_in_case_statement6521 = new BitSet(new long[]{0x0050100900188200L,0x20001002CC460000L,0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_case_statement6525 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_END_in_case_statement6531 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_synpred1_PhoenixSQL4496 = new BitSet(new long[]{0x0050100900188200L,0x200010028C460000L,0x0000000000000004L});
public static final BitSet FOLLOW_boolean_expression_in_synpred1_PhoenixSQL4499 = new BitSet(new long[]{0x0000000000000002L});
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy