public static String quoteNamePaths()

in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/StatementRewriter.java [121:146]


  public static String quoteNamePaths(String query, ASTStatement parsedStatement) {
    List<ASTPathExpression> pathExpressions =
        getResourcePathExpressionFromParseTree(parsedStatement).stream()
            .sorted(Comparator.comparing(expression -> expression.getParseLocationRange().start()))
            .collect(Collectors.toList());

    StringBuilder builder = new StringBuilder(query);

    int rewritingOffset = 0;
    for (ASTPathExpression pathExpression : pathExpressions) {
      int startPosition = pathExpression.getParseLocationRange().start();
      int endPosition = pathExpression.getParseLocationRange().end();

      String originalNamePath = query.substring(startPosition, endPosition);
      String quotedNamePath = buildQuotedNamePath(pathExpression);

      int rewriteStartPosition = startPosition + rewritingOffset;
      int rewriteEndPosition = endPosition + rewritingOffset;

      builder.replace(rewriteStartPosition, rewriteEndPosition, quotedNamePath);

      rewritingOffset += (quotedNamePath.length() - originalNamePath.length());
    }

    return builder.toString();
  }