Skip to content

Commit aa0c47a

Browse files
Marios Trivyzasmatriv
authored andcommitted
SQL: Fix ANTL4 Grammar ambiguities. (#33854)
Removed rules in the grammar that were superfluous, as they are already "caught" other rules in the same context. Also switched to exact ambig detection for debug mode Fixes: #31885
1 parent a204f93 commit aa0c47a

File tree

8 files changed

+243
-325
lines changed

8 files changed

+243
-325
lines changed

x-pack/plugin/sql/src/main/antlr/SqlBase.g4

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,9 @@ primaryExpression
218218
: castExpression #cast
219219
| extractExpression #extract
220220
| constant #constantDefault
221-
| ASTERISK #star
222221
| (qualifiedName DOT)? ASTERISK #star
223222
| functionExpression #function
224223
| '(' query ')' #subqueryExpression
225-
| identifier #columnReference
226224
| qualifiedName #dereference
227225
| '(' expression ')' #parenthesizedExpression
228226
;

x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/parser/ExpressionBuilder.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.BooleanLiteralContext;
5252
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.CastExpressionContext;
5353
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.CastTemplateContext;
54-
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.ColumnReferenceContext;
5554
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.ComparisonContext;
5655
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.DateEscapedLiteralContext;
5756
import org.elasticsearch.xpack.sql.parser.SqlBaseParser.DecimalLiteralContext;
@@ -142,11 +141,6 @@ public Expression visitStar(StarContext ctx) {
142141
new UnresolvedAttribute(source(ctx.qualifiedName()), visitQualifiedName(ctx.qualifiedName())) : null);
143142
}
144143

145-
@Override
146-
public Object visitColumnReference(ColumnReferenceContext ctx) {
147-
return new UnresolvedAttribute(source(ctx), visitIdentifier(ctx.identifier()));
148-
}
149-
150144
@Override
151145
public Object visitDereference(DereferenceContext ctx) {
152146
return new UnresolvedAttribute(source(ctx), visitQualifiedName(ctx.qualifiedName()));

x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/parser/SqlBaseBaseListener.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -719,18 +719,6 @@ class SqlBaseBaseListener implements SqlBaseListener {
719719
* <p>The default implementation does nothing.</p>
720720
*/
721721
@Override public void exitSubqueryExpression(SqlBaseParser.SubqueryExpressionContext ctx) { }
722-
/**
723-
* {@inheritDoc}
724-
*
725-
* <p>The default implementation does nothing.</p>
726-
*/
727-
@Override public void enterColumnReference(SqlBaseParser.ColumnReferenceContext ctx) { }
728-
/**
729-
* {@inheritDoc}
730-
*
731-
* <p>The default implementation does nothing.</p>
732-
*/
733-
@Override public void exitColumnReference(SqlBaseParser.ColumnReferenceContext ctx) { }
734722
/**
735723
* {@inheritDoc}
736724
*

x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/parser/SqlBaseBaseVisitor.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -424,13 +424,6 @@ class SqlBaseBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements SqlBa
424424
* {@link #visitChildren} on {@code ctx}.</p>
425425
*/
426426
@Override public T visitSubqueryExpression(SqlBaseParser.SubqueryExpressionContext ctx) { return visitChildren(ctx); }
427-
/**
428-
* {@inheritDoc}
429-
*
430-
* <p>The default implementation returns the result of calling
431-
* {@link #visitChildren} on {@code ctx}.</p>
432-
*/
433-
@Override public T visitColumnReference(SqlBaseParser.ColumnReferenceContext ctx) { return visitChildren(ctx); }
434427
/**
435428
* {@inheritDoc}
436429
*

x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/parser/SqlBaseListener.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -669,18 +669,6 @@ interface SqlBaseListener extends ParseTreeListener {
669669
* @param ctx the parse tree
670670
*/
671671
void exitSubqueryExpression(SqlBaseParser.SubqueryExpressionContext ctx);
672-
/**
673-
* Enter a parse tree produced by the {@code columnReference}
674-
* labeled alternative in {@link SqlBaseParser#primaryExpression}.
675-
* @param ctx the parse tree
676-
*/
677-
void enterColumnReference(SqlBaseParser.ColumnReferenceContext ctx);
678-
/**
679-
* Exit a parse tree produced by the {@code columnReference}
680-
* labeled alternative in {@link SqlBaseParser#primaryExpression}.
681-
* @param ctx the parse tree
682-
*/
683-
void exitColumnReference(SqlBaseParser.ColumnReferenceContext ctx);
684672
/**
685673
* Enter a parse tree produced by the {@code dereference}
686674
* labeled alternative in {@link SqlBaseParser#primaryExpression}.

0 commit comments

Comments
 (0)