@Override
  protected void analyzeCommand(TableName tableName, Map<String, String> partitionSpec, ASTNode command)
      throws SemanticException {
    Table table = getTable(tableName);
    String columnName = getUnescapedName((ASTNode) command.getChild(0));
    Map<String, String> properties = getProps((ASTNode) (command.getChild(1)).getChild(0));

    String partitionName = AcidUtils.getPartitionName(partitionSpec);
    String columnType = getColumnType(table, columnName);

    ColumnStatsUpdateWork work = new ColumnStatsUpdateWork(partitionName, properties, table.getDbName(),
        table.getTableName(), columnName, columnType);
    ColumnStatsUpdateTask task = (ColumnStatsUpdateTask) TaskFactory.get(work);
    // TODO: doesn't look like this path is actually ever exercised. Maybe this needs to be removed.
    addInputsOutputsAlterTable(tableName, partitionSpec, null, AlterTableType.UPDATESTATS, false);
    if (AcidUtils.isTransactionalTable(table)) {
      setAcidDdlDesc(work);
    }

    rootTasks.add(task);
  }
Analyzer for update column statistics commands.
ql/src/java/org/apache/hadoop/hive/ql/ddl/table/misc/columnstats/AlterTableUpdateColumnStatistictAnalyzer.java