docs: public List<Long> selectPostIds(final EnumSet<Post.Type> types,
                                     final Post.Status status,
                                     final Collection<TaxonomyTerm> terms,
                                     final Post.Sort sort,
                                     final Paging paging) throws SQLException {
  
        if(paging.limit < 1 || paging.start < 0) {
           return ImmutableList.of();
        }
  
        List<Long> ids = Lists.newArrayListWithExpectedSize(paging.limit < 1024 ? paging.limit : 1024);
  
        StringBuilder sql = new StringBuilder("SELECT ID FROM ");
        sql.append(postsTableName);
        if(terms != null && terms.size() > 0) {
           sql.append(",").append(termRelationshipsTableName);
           sql.append(" WHERE post_status=? AND object_id=ID AND ");
           if(terms.size() == 1) {
              sql.append("term_taxonomy_id=").append(terms.iterator().next().id);
           } else {
              sql.append("term_taxonomy_id IN (");
              Iterator<TaxonomyTerm> iter = terms.iterator();
              sql.append(iter.next().id);
              while(iter.hasNext()) {
                 sql.append(",").append(iter.next().id);
              }
              sql.append(")");
           }
        } else {
           sql.append(" WHERE post_status=?");
        }
  
        appendPostTypes(types, sql);
        appendPagingSortSQL(sql, sort, paging);
  
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        Timer.Context ctx = metrics.selectPostIdsTimer.time();
        try {
           conn = connectionSupplier.getConnection();
           stmt = conn.prepareStatement(sql.toString());
           stmt.setString(1, status.toString().toLowerCase());
           if(paging.interval != null) {
              stmt.setTimestamp(2, new Timestamp(paging.interval.getStartMillis()));
              stmt.setTimestamp(3, new Timestamp(paging.interval.getEndMillis()));
              stmt.setInt(4, paging.start);
              stmt.setInt(5, paging.limit);
           } else {
              stmt.setInt(2, paging.start);
              stmt.setInt(3, paging.limit);
           }
           rs = stmt.executeQuery();
           while(rs.next()) {
              ids.add(rs.getLong(1));
           }
        } finally {
           ctx.stop();
           SQLUtil.closeQuietly(conn, stmt, rs);
        }
        return ids;
     }