docs: public static AdHocSQLMix processAdHocSQLStmtTypes(String sql, List<String> validatedHomogeonousSQL) {
          assert(validatedHomogeonousSQL != null);
          assert(validatedHomogeonousSQL.size() == 0);
  
          List<String> sqlStatements = SQLLexer.splitStatements(sql).getCompletelyParsedStmts();
  
          // do initial naive scan of statements for DDL, forbid mixed DDL and (DML|DQL)
          Boolean hasDDL = null;
  
          for (String stmt : sqlStatements) {
              // Simulate an unhandled exception? (ENG-7653)
              if (DEBUG_MODE.isTrue() && stmt.equals(DEBUG_EXCEPTION_DDL)) {
                  throw new IndexOutOfBoundsException(DEBUG_EXCEPTION_DDL);
              }
  
              String ddlToken = SQLLexer.extractDDLToken(stmt);
  
              if (hasDDL == null) {
                  hasDDL = (ddlToken != null) ? true : false;
              }
              else if ((hasDDL && ddlToken == null) || (!hasDDL && ddlToken != null)) {
                  return AdHocSQLMix.MIXED;
              }
  
              validatedHomogeonousSQL.add(stmt);
          }
  
          if (validatedHomogeonousSQL.isEmpty()) {
              return AdHocSQLMix.EMPTY;
          }
          assert(hasDDL != null);
          return hasDDL ? AdHocSQLMix.ALL_DDL : AdHocSQLMix.ALL_DML_OR_DQL;
      }