private void initFetch() throws HiveException {
    Operator<?> source = work.getSource();
    if (source instanceof TableScanOperator) {
      TableScanOperator ts = (TableScanOperator) source;
      // push down projections
      ColumnProjectionUtils.appendReadColumns(job, ts.getNeededColumnIDs(), ts.getNeededColumns(),
          ts.getNeededNestedColumnPaths(), ts.getConf().hasVirtualCols());
      // push down filters and as of information
      HiveInputFormat.pushFiltersAndAsOf(job, ts, null);

      AcidUtils.setAcidOperationalProperties(job, ts.getConf().isTranscationalTable(),
          ts.getConf().getAcidOperationalProperties());
    }
    sink = work.getSink();
    fetch = new FetchOperator(work, job, source, getVirtualColumns(source));
    source.initialize(conf, new ObjectInspector[]{ fetch.getOutputObjectInspector() });
    totalRows = 0;
    ExecMapper.setDone(false);
  }
Clear the Fetch Operator.

@throws HiveException
ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java