diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsTask.java index 393d21dd0c..9ec464840d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsTask.java @@ -55,6 +55,7 @@ public class StatsTask extends Task implements Serializable { private static final long serialVersionUID = 1L; private static transient final Logger LOG = LoggerFactory.getLogger(StatsTask.class); + private Hive dbb; public StatsTask() { super(); @@ -65,7 +66,11 @@ public StatsTask() { @Override public void initialize(QueryState queryState, QueryPlan queryPlan, TaskQueue taskQueue, Context context) { super.initialize(queryState, queryPlan, taskQueue, context); - + try { + dbb = Hive.get(conf); + } catch (HiveException e) { + // Noop + } if (work.getBasicStatsWork() != null) { BasicStatsTask task = new BasicStatsTask(conf, work.getBasicStatsWork()); task.followedColStats = work.hasColStats(); @@ -99,7 +104,7 @@ public int execute() { work.getBasicStatsNoJobWork().setPartitions(work.getPartitions()); } - Hive db = getHive(); + Hive db = (dbb == null) ? getHive() : dbb; Table tbl = getTable(db); for (IStatsProcessor task : processors) {