in bigquery-antipattern-recognition/src/main/java/com/google/zetasql/toolkit/antipattern/rewriter/gemini/GeminiRewriter.java [45:64]
public static void rewriteSQL(InputQuery inputQuery,
List<AntiPatternVisitor> visitorsThatFoundAntiPatterns,
AntiPatternHelper antiPatternHelper,
Integer llmRestries,
Boolean llmStrictValidation) throws IOException {
String queryStr = inputQuery.getQuery();
QueryVisitorRewriter queryVisitorRewriter = new QueryVisitorRewriter(antiPatternHelper, llmStrictValidation);
for (AntiPatternVisitor visitor : visitorsThatFoundAntiPatterns) {
try {
queryStr = queryVisitorRewriter.rewriteSQL(queryStr, visitor, llmRestries);
} catch (Exception e) {
logger.error("Could not rewrite SQL for visitor: " + visitor.getName() + ". Error: " + e.getMessage());
}
}
if (!queryStr.equals(inputQuery.getQuery())) {
inputQuery.setOptimizedQuery(queryStr);
}
}