docs: public static void sqllocate(StringBuilder buf, List<? extends CharSequence> parsedArgs) throws SQLException {
      if (parsedArgs.size() == 2) {
        appendCall(buf, "position(", " in ", ")", parsedArgs);
      } else if (parsedArgs.size() == 3) {
        String tmp = "position(" + parsedArgs.get(0) + " in substring(" + parsedArgs.get(1) + " from "
            + parsedArgs.get(2) + "))";
        buf.append("(")
            .append(parsedArgs.get(2))
            .append("*sign(")
            .append(tmp)
            .append(")+")
            .append(tmp)
            .append(")");
      } else {
        throw new PSQLException(GT.tr("{0} function takes two or three arguments.", "locate"),
            PSQLState.SYNTAX_ERROR);
      }
    }