public void insertAnalyzePipeline() throws SemanticException {
    String analyzeCommand = "analyze table " + unparseIdentifier(tbl.getDbName(), conf)
        + "." + unparseIdentifier(tbl.getTableName(), conf) + " compute statistics for columns ";
    insertAnalyzePipeline(analyzeCommand, false);
  }
Generate the statement of analyze table [tablename] compute statistics for columns
In non-partitioned table case, it will generate TS-SEL-GBY-RS-GBY-SEL-FS operator
In static-partitioned table case, it will generate TS-FIL(partitionKey)-SEL-GBY(partitionKey)-RS-GBY-SEL-FS operator
In dynamic-partitioned table case, it will generate TS-SEL-GBY(partitionKey)-RS-GBY-SEL-FS operator
However, we do not need to specify the partition-spec because (1) the data is going to be inserted to that specific partition
(2) we can compose the static/dynamic partition using a select operator in replaceSelectOperatorProcess.
ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsAutoGatherContext.java