static String escapeAndJoin(List<String> parts) {
    return parts.stream()
        .map(ZetaSqlIdUtils::escapeSpecialChars)
        .map(ZetaSqlIdUtils::replaceWhitespaces)
        .map(ZetaSqlIdUtils::backtickIfNeeded)
        .collect(joining("."));
  }
@Test
  public void testHandlesMixedIds() {
    List<String> id = Arrays.asList("aaa", "Bb---B", "zAzzz00");
    assertEquals("aaa.`Bb---B`.zAzzz00", ZetaSqlIdUtils.escapeAndJoin(id));
  }