http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/planner/SubplanNode.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/planner/SubplanNode.java b/fe/src/main/java/org/apache/impala/planner/SubplanNode.java index 169abc1..c09efe5 100644 --- a/fe/src/main/java/org/apache/impala/planner/SubplanNode.java +++ b/fe/src/main/java/org/apache/impala/planner/SubplanNode.java @@ -93,9 +93,26 @@ public class SubplanNode extends PlanNode { } @Override - public void computeResourceProfile(TQueryOptions queryOptions) { + public void computeNodeResourceProfile(TQueryOptions queryOptions) { // TODO: add an estimate - resourceProfile_ = new ResourceProfile(0, 0); + nodeResourceProfile_ = new ResourceProfile(0, 0); + } + + @Override + public ExecPhaseResourceProfiles computeTreeResourceProfiles( + TQueryOptions queryOptions) { + // All nodes in a subplan remain open at the same time across iterations of a subplan, + // therefore the peak resource consumption is simply the sum of all node resources. + ResourceProfile subplanProfile = subplanComputePeakResources(this); + return new ExecPhaseResourceProfiles(subplanProfile, subplanProfile); + } + + private static ResourceProfile subplanComputePeakResources(PlanNode node) { + ResourceProfile result = node.nodeResourceProfile_; + for (PlanNode child: node.getChildren()) { + result = result.sum(subplanComputePeakResources(child)); + } + return result; } @Override
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/planner/UnionNode.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/planner/UnionNode.java b/fe/src/main/java/org/apache/impala/planner/UnionNode.java index 2c72c63..44e2967 100644 --- a/fe/src/main/java/org/apache/impala/planner/UnionNode.java +++ b/fe/src/main/java/org/apache/impala/planner/UnionNode.java @@ -129,9 +129,26 @@ public class UnionNode extends PlanNode { } @Override - public void computeResourceProfile(TQueryOptions queryOptions) { + public void computeNodeResourceProfile(TQueryOptions queryOptions) { // TODO: add an estimate - resourceProfile_ = new ResourceProfile(0, 0); + nodeResourceProfile_ = new ResourceProfile(0, 0); + } + + @Override + public ExecPhaseResourceProfiles computeTreeResourceProfiles( + TQueryOptions queryOptions) { + // The union executes concurrently with Open() and GetNext() on each of it's + // children. + ResourceProfile maxProfile = ResourceProfile.invalid(); + for (PlanNode child : children_) { + // Children are opened either during Open() or GetNext() of the union. + ExecPhaseResourceProfiles childResources = + child.computeTreeResourceProfiles(queryOptions); + maxProfile = maxProfile.max(childResources.duringOpenProfile); + maxProfile = maxProfile.max(childResources.postOpenProfile); + } + ResourceProfile peakResources = nodeResourceProfile_.sum(maxProfile); + return new ExecPhaseResourceProfiles(peakResources, peakResources); } /** http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/planner/UnnestNode.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/planner/UnnestNode.java b/fe/src/main/java/org/apache/impala/planner/UnnestNode.java index 5847e62..695ec24 100644 --- a/fe/src/main/java/org/apache/impala/planner/UnnestNode.java +++ b/fe/src/main/java/org/apache/impala/planner/UnnestNode.java @@ -74,9 +74,9 @@ public class UnnestNode extends PlanNode { } @Override - public void computeResourceProfile(TQueryOptions queryOptions) { + public void computeNodeResourceProfile(TQueryOptions queryOptions) { // TODO: add an estimate - resourceProfile_ = new ResourceProfile(0, 0); + nodeResourceProfile_ = new ResourceProfile(0, 0); } @Override http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/service/BackendConfig.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/service/BackendConfig.java b/fe/src/main/java/org/apache/impala/service/BackendConfig.java index 80f8ace..a1566c7 100644 --- a/fe/src/main/java/org/apache/impala/service/BackendConfig.java +++ b/fe/src/main/java/org/apache/impala/service/BackendConfig.java @@ -61,6 +61,10 @@ public class BackendConfig { public int getImpalaLogLevel() { return backendCfg_.impala_log_lvl; } public int getNonImpalaJavaVlogLevel() { return backendCfg_.non_impala_java_vlog; } + public boolean isPartitionedHashJoinEnabled() { + return backendCfg_.enable_partitioned_hash_join; + } + // Inits the auth_to_local configuration in the static KerberosName class. private static void initAuthToLocal() { // If auth_to_local is enabled, we read the configuration hadoop.security.auth_to_local http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/service/Frontend.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/service/Frontend.java b/fe/src/main/java/org/apache/impala/service/Frontend.java index d0a3b4d..855a076 100644 --- a/fe/src/main/java/org/apache/impala/service/Frontend.java +++ b/fe/src/main/java/org/apache/impala/service/Frontend.java @@ -35,10 +35,6 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hive.service.rpc.thrift.TGetColumnsReq; -import org.apache.hive.service.rpc.thrift.TGetFunctionsReq; -import org.apache.hive.service.rpc.thrift.TGetSchemasReq; -import org.apache.hive.service.rpc.thrift.TGetTablesReq; import org.apache.impala.analysis.AnalysisContext; import org.apache.impala.analysis.CreateDataSrcStmt; import org.apache.impala.analysis.CreateDropRoleStmt; @@ -1008,6 +1004,9 @@ public class Frontend { planRoots.add(planner.createPlan().get(0)); } + // Compute resource requirements of the final plans. + planner.computeResourceReqs(planRoots, result); + // create per-plan exec info; // also assemble list of names of tables with missing or corrupt stats for // assembling a warning message @@ -1016,10 +1015,6 @@ public class Frontend { createPlanExecInfo(planRoot, planner, queryCtx, result)); } - // Compute resource requirements after scan range locations because the cost - // estimates of scan nodes rely on them. - planner.computeResourceReqs(planRoots, result); - // Optionally disable spilling in the backend. Allow spilling if there are plan hints // or if all tables have stats. boolean disableSpilling = http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/util/BitUtil.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/util/BitUtil.java b/fe/src/main/java/org/apache/impala/util/BitUtil.java index 51b778a..839dd6e 100644 --- a/fe/src/main/java/org/apache/impala/util/BitUtil.java +++ b/fe/src/main/java/org/apache/impala/util/BitUtil.java @@ -26,7 +26,7 @@ public class BitUtil { } // Round up 'val' to the nearest power of two. 'val' must be > 0. - public static int roundUpToPowerOf2(long val) { - return 1 << log2Ceiling(val); + public static long roundUpToPowerOf2(long val) { + return 1L << log2Ceiling(val); } } http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/main/java/org/apache/impala/util/MathUtil.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/util/MathUtil.java b/fe/src/main/java/org/apache/impala/util/MathUtil.java new file mode 100644 index 0000000..c4029fa --- /dev/null +++ b/fe/src/main/java/org/apache/impala/util/MathUtil.java @@ -0,0 +1,45 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.impala.util; + +import com.google.common.math.LongMath; + +public class MathUtil { + + // Multiply two numbers. If the multiply would overflow, return either Long.MIN_VALUE + // (if a xor b is negative) or Long.MAX_VALUE otherwise. The overflow path is not + // optimised at all and may be somewhat slow. + public static long saturatingMultiply(long a, long b) { + try { + return LongMath.checkedMultiply(a, b); + } catch (ArithmeticException e) { + return a < 0 != b < 0 ? Long.MIN_VALUE : Long.MAX_VALUE; + } + } + + // Add two numbers. If the add would overflow, return either Long.MAX_VALUE if both are + // positive or Long.MIN_VALUE if both are negative. The overflow path is not optimised + // at all and may be somewhat slow. + public static long saturatingAdd(long a, long b) { + try { + return LongMath.checkedAdd(a, b); + } catch (ArithmeticException e) { + return a < 0 ? Long.MIN_VALUE : Long.MAX_VALUE; + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/test/java/org/apache/impala/util/BitUtilTest.java ---------------------------------------------------------------------- diff --git a/fe/src/test/java/org/apache/impala/util/BitUtilTest.java b/fe/src/test/java/org/apache/impala/util/BitUtilTest.java new file mode 100644 index 0000000..a134b6a --- /dev/null +++ b/fe/src/test/java/org/apache/impala/util/BitUtilTest.java @@ -0,0 +1,49 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.impala.util; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Unit tests for BitUtil functions. + */ +public class BitUtilTest { + + // Test the log2/PowerOf2 functions + @Test + public void testPowersOf2() { + assertEquals(8, BitUtil.log2Ceiling(256)); // Power-of-two + assertEquals(256, BitUtil.roundUpToPowerOf2(256)); // Power-of-two + assertEquals(4, BitUtil.log2Ceiling(10)); // Rounds up + assertEquals(16, BitUtil.roundUpToPowerOf2(10)); // Rounds up + assertEquals(33, BitUtil.log2Ceiling(8L * 1000L * 1000L * 1000L)); // > 32bit number + assertEquals(8L * 1024L * 1024L * 1024L, + BitUtil.roundUpToPowerOf2(8L * 1000L * 1000L * 1000L)); // > 32bit number + + assertEquals(0, BitUtil.log2Ceiling(1)); // Minimum valid input + assertEquals(1, BitUtil.roundUpToPowerOf2(1)); // Minimum valid input + assertEquals(63, BitUtil.log2Ceiling(Long.MAX_VALUE)); // Maximum valid input + // Overflow to -2^62. + assertEquals(-0x8000000000000000L, BitUtil.roundUpToPowerOf2(Long.MAX_VALUE)); + // Maximum non-overflow output: 2^62. + assertEquals(0x8000000000000000L, BitUtil.roundUpToPowerOf2(0x8000000000000000L - 1)); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/fe/src/test/java/org/apache/impala/util/MathUtilTest.java ---------------------------------------------------------------------- diff --git a/fe/src/test/java/org/apache/impala/util/MathUtilTest.java b/fe/src/test/java/org/apache/impala/util/MathUtilTest.java new file mode 100644 index 0000000..6120067 --- /dev/null +++ b/fe/src/test/java/org/apache/impala/util/MathUtilTest.java @@ -0,0 +1,61 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.impala.util; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Unit tests for MathUtil functions. + */ +public class MathUtilTest { + + @Test + public void testSaturatingMultiply() { + // Positive * positive + assertEquals(10, MathUtil.saturatingMultiply(2, 5)); + assertEquals(Long.MAX_VALUE, MathUtil.saturatingMultiply(2, Long.MAX_VALUE)); + assertEquals(Long.MAX_VALUE, MathUtil.saturatingMultiply(3, Long.MAX_VALUE / 2)); + + // Positive * negative + assertEquals(-10, MathUtil.saturatingMultiply(2, -5)); + assertEquals(Long.MIN_VALUE, MathUtil.saturatingMultiply(2, Long.MIN_VALUE)); + assertEquals(Long.MIN_VALUE, MathUtil.saturatingMultiply(-3, Long.MAX_VALUE / 2)); + + // Negative * negative + assertEquals(10, MathUtil.saturatingMultiply(-2, -5)); + assertEquals(Long.MAX_VALUE, MathUtil.saturatingMultiply(-1, Long.MIN_VALUE)); + assertEquals(Long.MAX_VALUE, MathUtil.saturatingMultiply(Long.MIN_VALUE / 10, -100)); + } + + @Test + public void testSaturatingAdd() { + // No overflow + assertEquals(1234, MathUtil.saturatingAdd(1200, 34)); + assertEquals(-1, MathUtil.saturatingAdd(Long.MAX_VALUE, Long.MIN_VALUE)); + + // Underflow + assertEquals(Long.MIN_VALUE, MathUtil.saturatingAdd(Long.MIN_VALUE, -1)); + assertEquals(Long.MIN_VALUE, MathUtil.saturatingAdd(Long.MIN_VALUE, Long.MIN_VALUE / 2)); + + // Overflow + assertEquals(Long.MAX_VALUE, MathUtil.saturatingAdd(Long.MAX_VALUE - 10, 11)); + assertEquals(Long.MAX_VALUE, MathUtil.saturatingAdd(Long.MAX_VALUE, Long.MAX_VALUE / 2)); + } +} http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/testdata/workloads/functional-planner/queries/PlannerTest/constant-folding.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/constant-folding.test b/testdata/workloads/functional-planner/queries/PlannerTest/constant-folding.test index 82f5c3e..ed4f684 100644 --- a/testdata/workloads/functional-planner/queries/PlannerTest/constant-folding.test +++ b/testdata/workloads/functional-planner/queries/PlannerTest/constant-folding.test @@ -5,6 +5,7 @@ where 5 + 5 < c_custkey and o_orderkey = (2 + 2) and (coalesce(2, 3, 4) * 10) + l_linenumber < (0 * 1) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=176.00MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -45,12 +46,12 @@ PLAN-ROOT SINK | tuple-ids=1 row-size=0B cardinality=10 | 00:SCAN HDFS [tpch_nested_parquet.customer c] - partitions=1/1 files=4 size=292.36MB + partitions=1/1 files=4 size=292.35MB predicates: c_custkey > 10, !empty(c.c_orders) predicates on o: !empty(o.o_lineitems), o_orderkey = 4 predicates on o_lineitems: 20 + l_linenumber < 0 stats-rows=150000 extrapolated-rows=disabled - table stats: rows=150000 size=292.36MB + table stats: rows=150000 size=292.35MB columns missing stats: c_orders parquet statistics predicates: c_custkey > 10 parquet dictionary predicates: c_custkey > 10 @@ -63,6 +64,7 @@ where string_col = cast(4 as string) and 2 + 3 = tinyint_col and id between concat('1', '0') and upper('20') ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=1.00GB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -81,6 +83,7 @@ select * from functional.alltypes_datasource where tinyint_col < (pow(2, 8)) and float_col != 0 and 1 + 1 > int_col ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=1.00GB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -99,6 +102,7 @@ having 1024 * 1024 * count(*) % 2 = 0 and (sm between 5 and 10) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=138.00MB mem-reservation=264.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -125,6 +129,7 @@ left outer join functional.alltypes b where round(1.11 + 2.22 + 3.33 + 4.44, 1) < cast(b.double_col as decimal(3, 2)) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=256.02MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -163,6 +168,7 @@ left outer join functional.alltypes b where cast(b.double_col as decimal(3, 2)) > round(1.11 + 2.22 + 3.33 + 4.44, 1) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=256.01MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -197,6 +203,7 @@ group by timestamp_col = cast('2015-11-15' as timestamp) + interval 1 year having 1024 * 1024 * count(*) % 2 = 0 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=138.00MB mem-reservation=528.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -227,6 +234,7 @@ from functional.alltypes having 1024 * 1024 * count(*) % 2 = 0 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=138.00MB mem-reservation=264.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -257,6 +265,7 @@ select first_value(1 + 1 + int_col - (1 - 1)) over from functional.alltypes ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=144.00MB mem-reservation=64.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -287,6 +296,7 @@ select int_col from functional.alltypes order by id * abs((factorial(5) / power(2, 4))) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=136.00MB mem-reservation=24.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -309,6 +319,7 @@ select id, int_col, cast(1 + 1 + 1 + year as int), cast(month - (1 - 1 - 1) as i from functional.alltypessmall ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=32.00MB mem-reservation=0B WRITE TO HDFS [functional.alltypes, OVERWRITE=false, PARTITION-KEYS=(CAST(3 + year AS INT),CAST(month - -1 AS INT))] | partitions=4 | mem-estimate=1.56KB mem-reservation=0B @@ -330,6 +341,7 @@ select sum(id + c3) from ) v3 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=138.00MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/testdata/workloads/functional-planner/queries/PlannerTest/disable-codegen.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/disable-codegen.test b/testdata/workloads/functional-planner/queries/PlannerTest/disable-codegen.test index a707e44..e64691a 100644 --- a/testdata/workloads/functional-planner/queries/PlannerTest/disable-codegen.test +++ b/testdata/workloads/functional-planner/queries/PlannerTest/disable-codegen.test @@ -2,7 +2,7 @@ select count(*) from functional.alltypes ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=0B -Per-Host Resource Estimates: Memory=138.00MB +Per-Host Resource Estimates: Memory=148.00MB Codegen disabled by planner PLAN-ROOT SINK @@ -22,7 +22,7 @@ PLAN-ROOT SINK select count(*) from functional.alltypesagg ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=0B -Per-Host Resource Estimates: Memory=90.00MB +Per-Host Resource Estimates: Memory=100.00MB PLAN-ROOT SINK | @@ -41,7 +41,7 @@ PLAN-ROOT SINK select count(*) from functional_parquet.alltypes ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=0B -Per-Host Resource Estimates: Memory=26.00MB +Per-Host Resource Estimates: Memory=36.00MB WARNING: The following tables are missing relevant table and/or column statistics. functional_parquet.alltypes @@ -56,7 +56,7 @@ PLAN-ROOT SINK | output: sum_init_zero(functional_parquet.alltypes.parquet-stats: num_rows) | 00:SCAN HDFS [functional_parquet.alltypes] - partitions=24/24 files=24 size=179.68KB + partitions=24/24 files=24 size=178.13KB ==== # > 3000 rows returned to coordinator: codegen should be enabled select * from functional_parquet.alltypes @@ -71,7 +71,7 @@ PLAN-ROOT SINK 01:EXCHANGE [UNPARTITIONED] | 00:SCAN HDFS [functional_parquet.alltypes] - partitions=24/24 files=24 size=179.68KB + partitions=24/24 files=24 size=178.13KB ==== # Optimisation is enabled for join producing < 3000 rows select count(*) @@ -79,7 +79,7 @@ from functional.alltypes t1 join functional.alltypestiny t2 on t1.id = t2.id ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=136.00MB -Per-Host Resource Estimates: Memory=138.00MB +Per-Host Resource Estimates: Memory=180.00MB Codegen disabled by planner PLAN-ROOT SINK @@ -109,7 +109,7 @@ PLAN-ROOT SINK select count(*) from functional.alltypes t1, functional.alltypes t2 ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=0B -Per-Host Resource Estimates: Memory=138.00MB +Per-Host Resource Estimates: Memory=276.00MB PLAN-ROOT SINK | @@ -138,7 +138,7 @@ select count(*) from ( select * from functional.alltypestiny) v ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=0B -Per-Host Resource Estimates: Memory=170.00MB +Per-Host Resource Estimates: Memory=148.00MB Codegen disabled by planner PLAN-ROOT SINK @@ -167,7 +167,7 @@ select count(*) from ( select * from functional.alltypes) v ---- DISTRIBUTEDPLAN Per-Host Resource Reservation: Memory=0B -Per-Host Resource Estimates: Memory=266.00MB +Per-Host Resource Estimates: Memory=148.00MB PLAN-ROOT SINK | http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/testdata/workloads/functional-planner/queries/PlannerTest/fk-pk-join-detection.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/fk-pk-join-detection.test b/testdata/workloads/functional-planner/queries/PlannerTest/fk-pk-join-detection.test index c2065ed..8e8ddc0 100644 --- a/testdata/workloads/functional-planner/queries/PlannerTest/fk-pk-join-detection.test +++ b/testdata/workloads/functional-planner/queries/PlannerTest/fk-pk-join-detection.test @@ -5,6 +5,7 @@ on ss_customer_sk = c_customer_sk where c_salutation = 'Mrs.' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=180.46MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -42,6 +43,7 @@ on ss_customer_sk = c_customer_sk where c_salutation = 'Mrs.' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=180.46MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -78,6 +80,7 @@ on ss_customer_sk = c_customer_sk where c_salutation = 'Mrs.' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=180.46MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -114,6 +117,7 @@ on ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number where sr_return_quantity < 10 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=210.65MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -149,6 +153,7 @@ tpcds.store_sales inner join tpcds.web_sales on ss_sold_time_sk = ws_sold_time_sk ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=396.67MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -183,6 +188,7 @@ on a.d_date_sk = b.d_date_sk where a.d_holiday = "Y" ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=107.62MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -223,6 +229,7 @@ where ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number and d1.d_fy_week_seq = 1000 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=352.73MB mem-reservation=544.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -304,6 +311,7 @@ tpcds.store_sales inner join tpcds.customer on ss_customer_sk % 10 = c_customer_sk / 100 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=202.79MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -338,6 +346,7 @@ tpcds.store_sales inner join tpcds_seq_snap.customer on ss_customer_sk = c_customer_sk ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=2.17GB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -349,7 +358,7 @@ PLAN-ROOT SINK | tuple-ids=0,1 row-size=8B cardinality=2880404 | |--01:SCAN HDFS [tpcds_seq_snap.customer] -| partitions=1/1 files=1 size=8.59MB +| partitions=1/1 files=1 size=8.58MB | stats-rows=unavailable extrapolated-rows=disabled | table stats: rows=unavailable size=unavailable | column stats: unavailable @@ -371,6 +380,7 @@ tpcds_seq_snap.store_sales inner join tpcds.customer on ss_customer_sk = c_customer_sk ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=176.42MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -390,7 +400,7 @@ PLAN-ROOT SINK | tuple-ids=1 row-size=4B cardinality=100000 | 00:SCAN HDFS [tpcds_seq_snap.store_sales] - partitions=1824/1824 files=1824 size=207.90MB + partitions=1824/1824 files=1824 size=207.85MB runtime filters: RF000 -> ss_customer_sk stats-rows=unavailable extrapolated-rows=disabled table stats: rows=unavailable size=unavailable @@ -406,6 +416,7 @@ tpcds.store_sales inner join on ss_sold_time_sk = ws_sold_time_sk ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=298.00MB mem-reservation=400.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/testdata/workloads/functional-planner/queries/PlannerTest/kudu-selectivity.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/kudu-selectivity.test b/testdata/workloads/functional-planner/queries/PlannerTest/kudu-selectivity.test index 48e98af..02843c0 100644 --- a/testdata/workloads/functional-planner/queries/PlannerTest/kudu-selectivity.test +++ b/testdata/workloads/functional-planner/queries/PlannerTest/kudu-selectivity.test @@ -1,6 +1,7 @@ select * from functional_kudu.zipcode_incomes where id = '8600000US00601' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -10,6 +11,7 @@ F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=1 ---- DISTRIBUTEDPLAN F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -18,6 +20,7 @@ F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=1 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 +Per-Host Resources: mem-estimate=0B mem-reservation=0B DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED] | mem-estimate=0B mem-reservation=0B 00:SCAN KUDU [functional_kudu.zipcode_incomes] @@ -29,6 +32,7 @@ F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 select * from functional_kudu.zipcode_incomes where id != '1' and zip = '2' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -39,6 +43,7 @@ F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=1 ---- DISTRIBUTEDPLAN F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -47,6 +52,7 @@ F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=1 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 +Per-Host Resources: mem-estimate=0B mem-reservation=0B DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED] | mem-estimate=0B mem-reservation=0B 00:SCAN KUDU [functional_kudu.zipcode_incomes] @@ -58,6 +64,7 @@ F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 select * from functional_kudu.zipcode_incomes where id > '1' and zip > '2' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -67,6 +74,7 @@ F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=3317 ---- DISTRIBUTEDPLAN F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -75,6 +83,7 @@ F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=3317 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 +Per-Host Resources: mem-estimate=0B mem-reservation=0B DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED] | mem-estimate=0B mem-reservation=0B 00:SCAN KUDU [functional_kudu.zipcode_incomes] @@ -85,6 +94,7 @@ F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 select * from functional_kudu.zipcode_incomes where id = '1' or id = '2' or zip = '3' ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -94,6 +104,7 @@ F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=3 ---- DISTRIBUTEDPLAN F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -102,6 +113,7 @@ F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 tuple-ids=0 row-size=124B cardinality=3 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3 +Per-Host Resources: mem-estimate=0B mem-reservation=0B DATASTREAM SINK [FRAGMENT=F01, EXCHANGE=01, UNPARTITIONED] | mem-estimate=0B mem-reservation=0B 00:SCAN KUDU [functional_kudu.zipcode_incomes] @@ -134,6 +146,7 @@ string_col not in ("bar") and id in (int_col) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -151,6 +164,7 @@ timestamp_col > (nanoseconds_add(cast('1987-05-19 00:00:00' as timestamp), 10)) timestamp_col < (seconds_add(cast('9999-12-31 24:59:59' as timestamp), 10)) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -158,13 +172,14 @@ F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 predicates: CAST(date_string_col AS TINYINT) IS NULL, timestamp_col < NULL kudu predicates: smallint_col IS NULL, tinyint_col IS NOT NULL, timestamp_col > TIMESTAMP '1987-05-19 00:00:00.000000010' mem-estimate=0B mem-reservation=0B - tuple-ids=0 row-size=126B cardinality=730 + tuple-ids=0 row-size=97B cardinality=730 ==== select * from functional_kudu.alltypes where timestamp_col in (cast('2010-03-01 00:00:00' as timestamp), cast('2010-03-01 00:01:00' as timestamp)) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -179,6 +194,7 @@ timestamp_col in (cast('2010-03-01 00:00:00' as timestamp), cast('2010-03-01 00:01:00' as timestamp)) ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/testdata/workloads/functional-planner/queries/PlannerTest/mt-dop-validation.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/mt-dop-validation.test b/testdata/workloads/functional-planner/queries/PlannerTest/mt-dop-validation.test index 41b76bc..f22e359 100644 --- a/testdata/workloads/functional-planner/queries/PlannerTest/mt-dop-validation.test +++ b/testdata/workloads/functional-planner/queries/PlannerTest/mt-dop-validation.test @@ -40,6 +40,7 @@ order by cnt, bigint_col limit 10 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=144.00MB mem-reservation=264.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -66,6 +67,7 @@ PLAN-ROOT SINK tuple-ids=0 row-size=16B cardinality=unavailable ---- PARALLELPLANS F02:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -76,6 +78,7 @@ PLAN-ROOT SINK | tuple-ids=2 row-size=16B cardinality=10 | F01:PLAN FRAGMENT [HASH(bigint_col)] hosts=3 instances=9 +Per-Host Resources: mem-estimate=384.00MB mem-reservation=792.00MB 02:TOP-N [LIMIT=10] | order by: count(int_col) ASC, bigint_col ASC | mem-estimate=160B mem-reservation=0B @@ -92,6 +95,7 @@ F01:PLAN FRAGMENT [HASH(bigint_col)] hosts=3 instances=9 | tuple-ids=1 row-size=16B cardinality=unavailable | F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=9 +Per-Host Resources: mem-estimate=432.00MB mem-reservation=0B 01:AGGREGATE [STREAMING] | output: count(int_col) | group by: bigint_col @@ -115,6 +119,7 @@ from functional_parquet.alltypes where id < 10 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=16.00MB mem-reservation=40.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -143,6 +148,7 @@ PLAN-ROOT SINK tuple-ids=0 row-size=8B cardinality=unavailable ---- PARALLELPLANS F02:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -151,6 +157,7 @@ PLAN-ROOT SINK | tuple-ids=4,3 row-size=16B cardinality=unavailable | F01:PLAN FRAGMENT [HASH(int_col)] hosts=3 instances=9 +Per-Host Resources: mem-estimate=0B mem-reservation=120.00MB 02:ANALYTIC | functions: row_number() | partition by: int_col @@ -169,6 +176,7 @@ F01:PLAN FRAGMENT [HASH(int_col)] hosts=3 instances=9 | tuple-ids=0 row-size=8B cardinality=unavailable | F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=9 +Per-Host Resources: mem-estimate=48.00MB mem-reservation=0B 00:SCAN HDFS [functional_parquet.alltypes, RANDOM] partitions=24/24 files=24 size=178.13KB predicates: id < 10 @@ -186,6 +194,7 @@ from tpch_nested_parquet.customer c, c.c_orders o, o.o_lineitems where c_custkey < 10 and o_orderkey < 5 and l_linenumber < 3 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=88.00MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -226,12 +235,12 @@ PLAN-ROOT SINK | tuple-ids=1 row-size=0B cardinality=10 | 00:SCAN HDFS [tpch_nested_parquet.customer c] - partitions=1/1 files=4 size=292.36MB + partitions=1/1 files=4 size=292.35MB predicates: c_custkey < 10, !empty(c.c_orders) predicates on o: !empty(o.o_lineitems), o_orderkey < 5 predicates on o_lineitems: l_linenumber < 3 stats-rows=150000 extrapolated-rows=disabled - table stats: rows=150000 size=292.36MB + table stats: rows=150000 size=292.35MB columns missing stats: c_orders parquet statistics predicates: c_custkey < 10 parquet dictionary predicates: c_custkey < 10 @@ -239,6 +248,7 @@ PLAN-ROOT SINK tuple-ids=0 row-size=254B cardinality=15000 ---- PARALLELPLANS F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -247,6 +257,7 @@ PLAN-ROOT SINK | tuple-ids=2,1,0 row-size=562B cardinality=1500000 | F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=9 +Per-Host Resources: mem-estimate=264.00MB mem-reservation=0B 01:SUBPLAN | mem-estimate=0B mem-reservation=0B | tuple-ids=2,1,0 row-size=562B cardinality=1500000 @@ -284,12 +295,12 @@ F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=9 | tuple-ids=1 row-size=0B cardinality=10 | 00:SCAN HDFS [tpch_nested_parquet.customer c, RANDOM] - partitions=1/1 files=4 size=292.36MB + partitions=1/1 files=4 size=292.35MB predicates: c_custkey < 10, !empty(c.c_orders) predicates on o: !empty(o.o_lineitems), o_orderkey < 5 predicates on o_lineitems: l_linenumber < 3 stats-rows=150000 extrapolated-rows=disabled - table stats: rows=150000 size=292.36MB + table stats: rows=150000 size=292.35MB columns missing stats: c_orders parquet statistics predicates: c_custkey < 10 parquet dictionary predicates: c_custkey < 10 @@ -302,6 +313,7 @@ from tpch_nested_parquet.customer c, c.c_orders o1, c.c_orders o2 where o1.o_orderkey = o2.o_orderkey + 2 and o1.o_orderkey < 5 ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=88.00MB mem-reservation=136.00MB PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -335,16 +347,17 @@ PLAN-ROOT SINK | tuple-ids=1 row-size=0B cardinality=10 | 00:SCAN HDFS [tpch_nested_parquet.customer c] - partitions=1/1 files=4 size=292.36MB + partitions=1/1 files=4 size=292.35MB predicates: !empty(c.c_orders), !empty(c.c_orders) predicates on o1: o1.o_orderkey < 5 stats-rows=150000 extrapolated-rows=disabled - table stats: rows=150000 size=292.36MB + table stats: rows=150000 size=292.35MB columns missing stats: c_orders, c_orders mem-estimate=88.00MB mem-reservation=0B tuple-ids=0 row-size=270B cardinality=150000 ---- PARALLELPLANS F01:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=0B mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -353,6 +366,7 @@ PLAN-ROOT SINK | tuple-ids=1,0,2 row-size=286B cardinality=1500000 | F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=9 +Per-Host Resources: mem-estimate=264.00MB mem-reservation=408.00MB 01:SUBPLAN | mem-estimate=0B mem-reservation=0B | tuple-ids=1,0,2 row-size=286B cardinality=1500000 @@ -383,11 +397,11 @@ F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=9 | tuple-ids=1 row-size=0B cardinality=10 | 00:SCAN HDFS [tpch_nested_parquet.customer c, RANDOM] - partitions=1/1 files=4 size=292.36MB + partitions=1/1 files=4 size=292.35MB predicates: !empty(c.c_orders), !empty(c.c_orders) predicates on o1: o1.o_orderkey < 5 stats-rows=150000 extrapolated-rows=disabled - table stats: rows=150000 size=292.36MB + table stats: rows=150000 size=292.35MB columns missing stats: c_orders, c_orders mem-estimate=88.00MB mem-reservation=0B tuple-ids=0 row-size=270B cardinality=150000 http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/64fd0115/testdata/workloads/functional-planner/queries/PlannerTest/parquet-filtering.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/parquet-filtering.test b/testdata/workloads/functional-planner/queries/PlannerTest/parquet-filtering.test index f5ae46d..0de7109 100644 --- a/testdata/workloads/functional-planner/queries/PlannerTest/parquet-filtering.test +++ b/testdata/workloads/functional-planner/queries/PlannerTest/parquet-filtering.test @@ -8,6 +8,7 @@ where int_col > 1 and int_col * rand() > 50 and int_col is null and int_col > tinyint_col; ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=42.00MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -37,6 +38,7 @@ and timestamp_cmp(timestamp_col, '2016-11-20 00:00:00') = 1 and year > 2000 and month < 12; ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=138.00MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B | @@ -67,6 +69,7 @@ and mod(int_col,50) IN (0,1) and id IN (int_col); ---- PLAN F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1 +| Per-Host Resources: mem-estimate=58.00MB mem-reservation=0B PLAN-ROOT SINK | mem-estimate=0B mem-reservation=0B |
