docs: public static String checkPermitted(String sql)
      {
          /*
           *  IMPORTANT: Black-lists are checked first because they know more about
           * what they don't like about a statement and can provide a better message.
           * It requires that black-lists patterns be very selective and that they
           * don't mind seeing statements that wouldn't pass the white-lists.
           */
  
          //=== Check against blacklists, must not be rejected by any.
  
          for (CheckedPattern cp : BLACKLISTS) {
              CheckedPattern.Result result = cp.check(sql);
              if (result.matcher != null) {
                  return String.format("%s, in statement: %s", result.explanation, sql);
              }
          }
  
          //=== Check against whitelists, must be accepted by at least one.
  
          boolean hadWLMatch = false;
          for (CheckedPattern cp : WHITELISTS) {
              if (cp.matches(sql)) {
                  hadWLMatch = true;
                  break;
              }
          }
          if (!hadWLMatch) {
              return String.format("AdHoc DDL contains an unsupported statement: %s", sql);
          }
  
          // The statement is permitted.
          return null;
      }