diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java index da153e36d2..efe3e0d017 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java @@ -1995,6 +1995,12 @@ public static Path createMoveTask(Task currTask, boolean } inputPaths.add(part.getDataLocation()); break; + case DYNAMIC_PARTITION: + for (Partition dynPart:tableScanOp.getConf().getTableMetadata() + .getTableSpec().partitions) { + inputPaths.add(dynPart.getDataLocation()); + } + break; default: assert false; } diff --git a/ql/src/test/queries/clientpositive/stats_partscan_1_23.q b/ql/src/test/queries/clientpositive/stats_partscan_1_23.q index 905c4c2536..8d8f0a1559 100644 --- a/ql/src/test/queries/clientpositive/stats_partscan_1_23.q +++ b/ql/src/test/queries/clientpositive/stats_partscan_1_23.q @@ -32,7 +32,11 @@ analyze table analyze_srcpart_partial_scan PARTITION(ds='2008-04-08',hr=11) comp -- 3. confirm result describe formatted analyze_srcpart_partial_scan PARTITION(ds='2008-04-08',hr=11); describe formatted analyze_srcpart_partial_scan PARTITION(ds='2008-04-09',hr=11); -drop table analyze_srcpart_partial_scan; +-- 4. dynamic partition +explain +analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan; +analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan; +drop table analyze_srcpart_partial_scan; diff --git a/ql/src/test/results/clientpositive/spark/stats_partscan_1_23.q.out b/ql/src/test/results/clientpositive/spark/stats_partscan_1_23.q.out index 50096a5a8d..c526098dee 100644 --- a/ql/src/test/results/clientpositive/spark/stats_partscan_1_23.q.out +++ b/ql/src/test/results/clientpositive/spark/stats_partscan_1_23.q.out @@ -177,6 +177,47 @@ Bucket Columns: [] Sort Columns: [] Storage Desc Params: serialization.format 1 +PREHOOK: query: explain +analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +PREHOOK: type: QUERY +POSTHOOK: query: explain +analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-2 is a root stage + Stage-1 depends on stages: Stage-0, Stage-2 + +STAGE PLANS: + Stage: Stage-2 + Partial Scan Statistics + + Stage: Stage-1 + Stats-Aggr Operator + +PREHOOK: query: analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +PREHOOK: type: QUERY +PREHOOK: Input: default@analyze_srcpart_partial_scan +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 +PREHOOK: Output: default@analyze_srcpart_partial_scan +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 +POSTHOOK: query: analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +POSTHOOK: type: QUERY +POSTHOOK: Input: default@analyze_srcpart_partial_scan +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 +POSTHOOK: Output: default@analyze_srcpart_partial_scan +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 PREHOOK: query: drop table analyze_srcpart_partial_scan PREHOOK: type: DROPTABLE PREHOOK: Input: default@analyze_srcpart_partial_scan diff --git a/ql/src/test/results/clientpositive/stats_partscan_1_23.q.out b/ql/src/test/results/clientpositive/stats_partscan_1_23.q.out index cf9867d5b7..5e4857c030 100644 --- a/ql/src/test/results/clientpositive/stats_partscan_1_23.q.out +++ b/ql/src/test/results/clientpositive/stats_partscan_1_23.q.out @@ -180,6 +180,47 @@ Bucket Columns: [] Sort Columns: [] Storage Desc Params: serialization.format 1 +PREHOOK: query: explain +analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +PREHOOK: type: QUERY +POSTHOOK: query: explain +analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-2 is a root stage + Stage-1 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-2 + Partial Scan Statistics + + Stage: Stage-1 + Stats-Aggr Operator + +PREHOOK: query: analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +PREHOOK: type: QUERY +PREHOOK: Input: default@analyze_srcpart_partial_scan +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +PREHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 +PREHOOK: Output: default@analyze_srcpart_partial_scan +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +PREHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 +POSTHOOK: query: analyze table analyze_srcpart_partial_scan partition(ds, hr) compute statistics partialscan +POSTHOOK: type: QUERY +POSTHOOK: Input: default@analyze_srcpart_partial_scan +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +POSTHOOK: Input: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 +POSTHOOK: Output: default@analyze_srcpart_partial_scan +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=11 +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-08/hr=12 +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=11 +POSTHOOK: Output: default@analyze_srcpart_partial_scan@ds=2008-04-09/hr=12 PREHOOK: query: drop table analyze_srcpart_partial_scan PREHOOK: type: DROPTABLE PREHOOK: Input: default@analyze_srcpart_partial_scan