GoogleCloudPlatform / bigquery-antipattern-recognition

Utility to identify and rewrite common anti patterns in BigQuery SQL syntax
Apache License 2.0
76 stars 26 forks source link

Query parsing fails for queries with UNNEST #32

Open sridivakar opened 11 months ago

sridivakar commented 11 months ago

Here is the stacktrace :

[main] ERROR com.google.zetasql.toolkit.antipattern.parser.Main - Query parsing failed for query: SELECT * FROM `bq_antipattern.antipattern_output_table` , unnest(recommendation);
java.lang.NullPointerException: Cannot invoke "com.google.zetasql.parser.ASTNodes$ASTPathExpression.getNames()" because the return value of "com.google.zetasql.parser.ASTNodes$ASTTablePathExpression.getPathExpr()" is null
    at com.google.zetasql.toolkit.antipattern.parser.visitors.IdentifyCTEsEvalMultipleTimesVisitor.visit(IdentifyCTEsEvalMultipleTimesVisitor.java:94)
    at com.google.zetasql.parser.ASTNodes$ASTTablePathExpression.accept(ASTNodes.java:1450)
    at com.google.zetasql.parser.ParseTreeVisitor.descend(ParseTreeVisitor.java:45)
    at com.google.zetasql.parser.ASTNodes$ASTJoin.acceptChildren(ASTNodes.java:2651)
    at com.google.zetasql.parser.ParseTreeVisitor.defaultVisit(ParseTreeVisitor.java:36)
    at com.google.zetasql.parser.ParseTreeVisitor.visit(ParseTreeVisitor.java:162)
    at com.google.zetasql.parser.ASTNodes$ASTJoin.accept(ASTNodes.java:2642)
    at com.google.zetasql.parser.ParseTreeVisitor.descend(ParseTreeVisitor.java:45)
    at com.google.zetasql.parser.ASTNodes$ASTFromClause.acceptChildren(ASTNodes.java:1518)
    at com.google.zetasql.parser.ParseTreeVisitor.defaultVisit(ParseTreeVisitor.java:36)
    at com.google.zetasql.parser.ParseTreeVisitor.visit(ParseTreeVisitor.java:94)
    at com.google.zetasql.parser.ASTNodes$ASTFromClause.accept(ASTNodes.java:1512)
    at com.google.zetasql.parser.ParseTreeVisitor.descend(ParseTreeVisitor.java:45)
    at com.google.zetasql.parser.ASTNodes$ASTSelect.acceptChildren(ASTNodes.java:617)
    at com.google.zetasql.parser.ParseTreeVisitor.defaultVisit(ParseTreeVisitor.java:36)
    at com.google.zetasql.parser.ParseTreeVisitor.visit(ParseTreeVisitor.java:62)
    at com.google.zetasql.parser.ASTNodes$ASTSelect.accept(ASTNodes.java:607)
    at com.google.zetasql.parser.ParseTreeVisitor.descend(ParseTreeVisitor.java:45)
    at com.google.zetasql.parser.ASTNodes$ASTQuery.acceptChildren(ASTNodes.java:409)
    at com.google.zetasql.parser.ParseTreeVisitor.defaultVisit(ParseTreeVisitor.java:36)
    at com.google.zetasql.parser.ParseTreeVisitor.visit(ParseTreeVisitor.java:58)
    at com.google.zetasql.parser.ASTNodes$ASTQuery.accept(ASTNodes.java:402)
    at com.google.zetasql.parser.ParseTreeVisitor.descend(ParseTreeVisitor.java:45)
    at com.google.zetasql.parser.ASTNodes$ASTQueryStatement.acceptChildren(ASTNodes.java:224)
    at com.google.zetasql.parser.ParseTreeVisitor.defaultVisit(ParseTreeVisitor.java:36)
    at com.google.zetasql.parser.ParseTreeVisitor.visit(ParseTreeVisitor.java:54)
    at com.google.zetasql.parser.ASTNodes$ASTQueryStatement.accept(ASTNodes.java:218)
    at com.google.zetasql.toolkit.antipattern.parser.IdentifyCTEsEvalMultipleTimes.run(IdentifyCTEsEvalMultipleTimes.java:33)
    at com.google.zetasql.toolkit.antipattern.parser.Main$3.<init>(Main.java:152)
    at com.google.zetasql.toolkit.antipattern.parser.Main.getRecommendations(Main.java:150)
    at com.google.zetasql.toolkit.antipattern.parser.Main.main(Main.java:78)
sridivakar commented 11 months ago

Created an issue in the Zetasql repo, which is a dependency for this issue. https://github.com/google/zetasql/issues/148