docs: public List<Post> selectModifiedPosts(final EnumSet<Post.Type> types,
                                           final long startTimestamp,
                                           final long startId,
                                           final int limit,
                                           final boolean withResolve) throws SQLException {
  
        List<Post.Builder> builders = Lists.newArrayListWithExpectedSize(limit < 1024 ? limit : 1024);
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        Timer.Context ctx = metrics.selectModPostsTimer.time();
        try {
           conn = connectionSupplier.getConnection();
           Timestamp ts = new Timestamp(startTimestamp);
  
           if(types == null || types.size() == 0) {
              stmt = conn.prepareStatement(selectModPostsSQL);
           } else {
              stmt = conn.prepareStatement(String.format(selectModPostsWithTypeSQL, appendPostTypes(types, new StringBuilder()).toString()));
           }
  
           stmt.setTimestamp(1, ts);
           stmt.setTimestamp(2, ts);
           stmt.setLong(3, startId);
           stmt.setInt(4, limit);
  
           rs = stmt.executeQuery();
           while(rs.next()) {
              builders.add(postFromResultSet(rs));
           }
        } finally {
           ctx.stop();
           SQLUtil.closeQuietly(conn, stmt, rs);
        }
  
        List<Post> posts = Lists.newArrayListWithExpectedSize(builders.size());
        for(Post.Builder builder : builders) {
           if(withResolve) {
              posts.add(resolve(builder).build());
           } else {
              posts.add(builder.build());
           }
        }
  
        return posts;
     }