public static String patternToRegex(String pattern) {
    if (pattern == null) {
      return ".*";
    } else {
      StringBuilder result = new StringBuilder(pattern.length());

      boolean escaped = false;
      for (int i = 0, len = pattern.length(); i < len; i++) {
        char c = pattern.charAt(i);
        if (escaped) {
          if (c != SEARCH_STRING_ESCAPE) {
            escaped = false;
          }
          result.append(c);
        } else {
          if (c == SEARCH_STRING_ESCAPE) {
            escaped = true;
            continue;
          } else if (c == '%') {
            result.append(".*");
          } else if (c == '_') {
            result.append('.');
          } else {
            result.append(Character.toLowerCase(c));
          }
        }
      }
      return result.toString();
    }
  }
Convert a SQL search pattern into an equivalent Java Regex.

@param pattern input which may contain '%' or '_' wildcard characters, or
these characters escaped using getSearchStringEscape().
@return replace %/_ with regex search characters, also handle escaped
characters.
service/src/java/org/apache/hive/service/cli/CLIServiceUtils.java