docs: protected String nullify(String sql) {
          /*
           * Some drivers (Oracle classes12.zip) have difficulty resolving data
           * type if setObject(null). We will modify the query to pass 'null', 'is
           * null', and 'is not null'
           */
          //could be more efficient by compiling expressions in advance.
          int firstWhere = findWhereKeyword(sql);
          if (firstWhere >= 0) {
              Pattern[] patterns = {Pattern.compile("(?is)^(.{" + firstWhere + "}.*?)!=\\s{0,1}(\\s*)\\?'\"\\?(.*)"),
                      Pattern.compile("(?is)^(.{" + firstWhere + "}.*?)<>\\s{0,1}(\\s*)\\?'\"\\?(.*)"),
                      Pattern.compile("(?is)^(.{" + firstWhere + "}.*?[^<>])=\\s{0,1}(\\s*)\\?'\"\\?(.*)"),};
              String[] replacements = {"$1 is not $2null$3", "$1 is not $2null$3", "$1 is $2null$3",};
              for (int i = 0; i < patterns.length; i++) {
                  Matcher matcher = patterns[i].matcher(sql);
                  while (matcher.matches()) {
                      sql = matcher.replaceAll(replacements[i]);
                      matcher = patterns[i].matcher(sql);
                  }
              }
          }
          return sql.replaceAll("\\?'\"\\?", "null");
      }