public T run(PreparedStatement stmt) throws SQLException {
      return null;
    }
The check here is kind of not clean. It first use a for loop to go through
all input formats, and choose the ones that extend ReworkMapredInputFormat
to a set. And finally go through the ReworkMapredInputFormat set, and call
rework for each one.

Technically all these can be avoided if all Hive's input formats can share
a same interface. As in today's hive and Hadoop, it is not possible because
a lot of Hive's input formats are in Hadoop's code. And most of Hadoop's
input formats just extend InputFormat interface.

@param task
@param reworkMapredWork
@param conf
@throws SemanticException
ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java