public static List<Integer> buildQueryWithINClause(Configuration conf,
                                            List<String> queries,
                                            StringBuilder prefix,
                                            StringBuilder suffix,
                                            Collection<Long> inValues,
                                            String inColumn,
                                            boolean addParens,
                                            boolean notIn) {
    List<String> inValueStrings = inValues.stream()
            .map(Object::toString)
            .collect(Collectors.toList());

    return buildQueryWithINClauseStrings(conf, queries, prefix, suffix,
            inValueStrings, inColumn, addParens, notIn);
  }
Build a query (or queries if one query is too big but only for the case of 'IN'
composite clause. For the case of 'NOT IN' clauses, multiple queries change
the semantics of the intended query.
E.g., Let's assume that input "inValues" parameter has [5, 6] and that
_DIRECT_SQL_MAX_QUERY_LENGTH_ configuration parameter only allows one value in a 'NOT IN' clause,
Then having two delete statements changes the semantics of the intended SQL statement.
I.e. 'delete from T where a not in (5)' and 'delete from T where a not in (6)' sequence
is not equal to 'delete from T where a not in (5, 6)'.)
with one or multiple 'IN' or 'NOT IN' clauses with the given input parameters.

Note that this method currently support only single column for
IN/NOT IN clauses and that only covers OR-based composite 'IN' clause and
AND-based composite 'NOT IN' clause.
For example, for 'IN' clause case, the method will build a query with OR.
E.g., "id in (1,2,3) OR id in (4,5,6)".
For 'NOT IN' case, NOT IN list is broken into multiple 'NOT IN" clauses connected by AND.

Note that, in this method, "a composite 'IN' clause" is defined as "a list of multiple 'IN'
clauses in a query".

@param queries   OUT: Array of query strings
@param prefix    IN:  Part of the query that comes before IN list
@param suffix    IN:  Part of the query that comes after IN list
@param inValues  IN:  Collection containing IN clause values
@param inColumn  IN:  single column name of IN list operator
@param addParens IN:  add a pair of parenthesis outside the IN lists
                      e.g. "(id in (1,2,3) OR id in (4,5,6))"
@param notIn     IN:  is this for building a 'NOT IN' composite clause?
@return          OUT: a list of the count of IN list values that are in each of the corresponding queries
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnUtils.java