commit d2306d19873b09e8dbbe95eefde5baba981183e2 Author: Pengcheng Xiong Date: Mon May 8 23:17:35 2017 -0700 pa diff --git a/common/src/java/org/apache/hadoop/hive/common/jsonexplain/Op.java b/common/src/java/org/apache/hadoop/hive/common/jsonexplain/Op.java index 1d9a681db2..2b853ef66e 100644 --- a/common/src/java/org/apache/hadoop/hive/common/jsonexplain/Op.java +++ b/common/src/java/org/apache/hadoop/hive/common/jsonexplain/Op.java @@ -194,10 +194,6 @@ else if (parentVertexes.size() == 1) { else { Map posToOpId = new LinkedHashMap<>(); if (vertex.mergeJoinDummyVertexs.size() == 0) { - if (vertex.tagToInput.size() != vertex.parentConnections.size()) { - throw new Exception("tagToInput size " + vertex.tagToInput.size() - + " is different from parentConnections size " + vertex.parentConnections.size()); - } for (Entry entry : vertex.tagToInput.entrySet()) { Connection c = null; for (Connection connection : vertex.parentConnections) { diff --git a/common/src/test/org/apache/hadoop/hive/common/TestTezJsonParser.java b/common/src/test/org/apache/hadoop/hive/common/TestTezJsonParser.java new file mode 100644 index 0000000000..664a77ddde --- /dev/null +++ b/common/src/test/org/apache/hadoop/hive/common/TestTezJsonParser.java @@ -0,0 +1,174 @@ +/** + * 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.hadoop.hive.common; + +import org.apache.hadoop.hive.common.jsonexplain.JsonParser; +import org.apache.hadoop.hive.common.jsonexplain.tez.TezJsonParser; +import org.json.JSONObject; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.nio.charset.StandardCharsets; + +public class TestTezJsonParser { + JsonParser jsonParser = null; + + @Before + public void setUp() { + jsonParser = new TezJsonParser(); + } + + @Test + public void testQuery27() throws Exception { + JSONObject jsonPlan = new JSONObject( + "{\"STAGE DEPENDENCIES\":{\"Stage-1\":{\"ROOT STAGE\":\"TRUE\"},\"Stage-0\":{\"DEPENDENT STAGES\":\"Stage-1\"}},\"STAGE PLANS\":{\"Stage-1\":{\"Tez\":{\"Edges:\":{\"Map 1\":{\"parent\":\"Map 5\",\"type\":\"BROADCAST_EDGE\"},\"Map 6\":{\"parent\":\"Map 8\",\"type\":\"BROADCAST_EDGE\"},\"Map 9\":{\"parent\":\"Map 10\",\"type\":\"BROADCAST_EDGE\"},\"Reducer 2\":[{\"parent\":\"Map 1\",\"type\":\"SIMPLE_EDGE\"},{\"parent\":\"Reducer 7\",\"type\":\"SIMPLE_EDGE\"}],\"Reducer 3\":{\"parent\":\"Reducer 2\",\"type\":\"SIMPLE_EDGE\"},\"Reducer 4\":{\"parent\":\"Reducer 3\",\"type\":\"SIMPLE_EDGE\"},\"Reducer 7\":[{\"parent\":\"Map 11\",\"type\":\"BROADCAST_EDGE\"},{\"parent\":\"Map 12\",\"type\":\"BROADCAST_EDGE\"},{\"parent\":\"Map 6\",\"type\":\"SIMPLE_EDGE\"},{\"parent\":\"Map 9\",\"type\":\"SIMPLE_EDGE\"}]},\"Vertices:\":{\"Map 1\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"cs_sold_date_sk\",\"cs_bill_customer_sk\",\"cs_item_sk\",\"cs_net_profit\"],\"\":\"default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=1441548 width=204\",\"OperatorId:\":\"TS_0\",\"children\":{\"Filter Operator\":{\"predicate:\":\"(cs_bill_customer_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null)\",\"Statistics:\":\"rows=1441548 width=204\",\"OperatorId:\":\"FIL_85\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\",\"_col1\",\"_col2\",\"_col3\"],\"Statistics:\":\"rows=1441548 width=204\",\"OperatorId:\":\"SEL_2\",\"children\":{\"Map Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"input vertices:\":{\"1\":\"Map 5\"},\"keys:\":{\"0\":\"_col0\",\"1\":\"_col0\"},\"Output:\":[\"_col1\",\"_col2\",\"_col3\"],\"Statistics:\":\"rows=1585702 width=204\",\"HybridGraceHashJoin:\":\"true\",\"OperatorId:\":\"MAPJOIN_93\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 2\",\"PartitionCols:\":\"_col1, _col2\",\"Statistics:\":\"rows=1585702 width=204\",\"OperatorId:\":\"RS_44\"}}}}}}}}}}],\"tag:\":\"0\"},\"Map 10\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"d_date_sk\",\"d_year\",\"d_moy\"],\"\":\"default@date_dim,d2,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=73049 width=140\",\"OperatorId:\":\"TS_15\",\"children\":{\"Filter Operator\":{\"predicate:\":\"(d_moy BETWEEN 4 AND 10 and (d_year = 1998) and d_date_sk is not null)\",\"Statistics:\":\"rows=4058 width=140\",\"OperatorId:\":\"FIL_90\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\"],\"Statistics:\":\"rows=4058 width=140\",\"OperatorId:\":\"SEL_17\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Map 9\",\"PartitionCols:\":\"_col0\",\"Statistics:\":\"rows=4058 width=140\",\"OperatorId:\":\"RS_19\"}}}}}}}}],\"tag:\":\"0\"},\"Map 11\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"i_item_sk\",\"i_item_id\",\"i_item_desc\"],\"\":\"default@item,item,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=18000 width=279\",\"OperatorId:\":\"TS_22\",\"children\":{\"Filter Operator\":{\"predicate:\":\"i_item_sk is not null\",\"Statistics:\":\"rows=18000 width=279\",\"OperatorId:\":\"FIL_91\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\",\"_col1\",\"_col2\"],\"Statistics:\":\"rows=18000 width=279\",\"OperatorId:\":\"SEL_24\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 7\",\"PartitionCols:\":\"_col0\",\"Statistics:\":\"rows=18000 width=279\",\"OperatorId:\":\"RS_35\"}}}}}}}}],\"tag:\":\"0\"},\"Map 12\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"s_store_sk\",\"s_store_id\",\"s_store_name\"],\"\":\"default@store,store,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=12 width=261\",\"OperatorId:\":\"TS_25\",\"children\":{\"Filter Operator\":{\"predicate:\":\"s_store_sk is not null\",\"Statistics:\":\"rows=12 width=261\",\"OperatorId:\":\"FIL_92\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\",\"_col1\",\"_col2\"],\"Statistics:\":\"rows=12 width=261\",\"OperatorId:\":\"SEL_27\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 7\",\"PartitionCols:\":\"_col0\",\"Statistics:\":\"rows=12 width=261\",\"OperatorId:\":\"RS_38\"}}}}}}}}],\"tag:\":\"0\"},\"Map 5\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"d_date_sk\",\"d_year\",\"d_moy\"],\"\":\"default@date_dim,d3,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=73049 width=140\",\"OperatorId:\":\"TS_3\",\"children\":{\"Filter Operator\":{\"predicate:\":\"(d_moy BETWEEN 4 AND 10 and (d_year = 1998) and d_date_sk is not null)\",\"Statistics:\":\"rows=4058 width=140\",\"OperatorId:\":\"FIL_86\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\"],\"Statistics:\":\"rows=4058 width=140\",\"OperatorId:\":\"SEL_5\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Map 1\",\"PartitionCols:\":\"_col0\",\"Statistics:\":\"rows=4058 width=140\",\"OperatorId:\":\"RS_42\"}}}}}}}}],\"tag:\":\"0\"},\"Map 6\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"ss_sold_date_sk\",\"ss_item_sk\",\"ss_customer_sk\",\"ss_store_sk\",\"ss_ticket_number\",\"ss_net_profit\"],\"\":\"default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=2880404 width=133\",\"OperatorId:\":\"TS_6\",\"children\":{\"Filter Operator\":{\"predicate:\":\"(ss_item_sk is not null and ss_customer_sk is not null and ss_ticket_number is not null and ss_sold_date_sk is not null and ss_store_sk is not null)\",\"Statistics:\":\"rows=2880404 width=133\",\"OperatorId:\":\"FIL_87\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\"],\"Statistics:\":\"rows=2880404 width=133\",\"OperatorId:\":\"SEL_8\",\"children\":{\"Map Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"input vertices:\":{\"1\":\"Map 8\"},\"keys:\":{\"0\":\"_col0\",\"1\":\"_col0\"},\"Output:\":[\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\"],\"Statistics:\":\"rows=3168444 width=133\",\"HybridGraceHashJoin:\":\"true\",\"OperatorId:\":\"MAPJOIN_94\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 7\",\"PartitionCols:\":\"_col1, _col2, _col4\",\"Statistics:\":\"rows=3168444 width=133\",\"OperatorId:\":\"RS_31\"}}}}}}}}}}],\"tag:\":\"0\"},\"Map 8\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"d_date_sk\",\"d_year\",\"d_moy\"],\"\":\"default@date_dim,d1,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=73049 width=140\",\"OperatorId:\":\"TS_9\",\"children\":{\"Filter Operator\":{\"predicate:\":\"((d_moy = 4) and (d_year = 1998) and d_date_sk is not null)\",\"Statistics:\":\"rows=18262 width=140\",\"OperatorId:\":\"FIL_88\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\"],\"Statistics:\":\"rows=18262 width=140\",\"OperatorId:\":\"SEL_11\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Map 6\",\"PartitionCols:\":\"_col0\",\"Statistics:\":\"rows=18262 width=140\",\"OperatorId:\":\"RS_29\"}}}}}}}}],\"tag:\":\"0\"},\"Map 9\":{\"Map Operator Tree:\":[{\"TableScan\":{\"Output:\":[\"sr_returned_date_sk\",\"sr_item_sk\",\"sr_customer_sk\",\"sr_ticket_number\",\"sr_net_loss\"],\"\":\"default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE\",\"Statistics:\":\"rows=287514 width=112\",\"OperatorId:\":\"TS_12\",\"children\":{\"Filter Operator\":{\"predicate:\":\"(sr_item_sk is not null and sr_customer_sk is not null and sr_ticket_number is not null and sr_returned_date_sk is not null)\",\"Statistics:\":\"rows=287514 width=112\",\"OperatorId:\":\"FIL_89\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\"],\"Statistics:\":\"rows=287514 width=112\",\"OperatorId:\":\"SEL_14\",\"children\":{\"Map Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"input vertices:\":{\"1\":\"Map 10\"},\"keys:\":{\"0\":\"_col0\",\"1\":\"_col0\"},\"Output:\":[\"_col1\",\"_col2\",\"_col3\",\"_col4\"],\"Statistics:\":\"rows=316265 width=112\",\"HybridGraceHashJoin:\":\"true\",\"OperatorId:\":\"MAPJOIN_95\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 7\",\"PartitionCols:\":\"_col1, _col2, _col3\",\"Statistics:\":\"rows=316265 width=112\",\"OperatorId:\":\"RS_32\"}}}}}}}}}}],\"tag:\":\"0\"},\"Reducer 2\":{\"Reduce Operator Tree:\":{\"Merge Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"keys:\":{\"0\":\"_col1, _col2\",\"1\":\"_col17, _col16\"},\"Output:\":[\"_col3\",\"_col8\",\"_col9\",\"_col11\",\"_col12\",\"_col18\",\"_col26\"],\"Statistics:\":\"rows=4638916 width=133\",\"OperatorId:\":\"MERGEJOIN_99\",\"children\":{\"Group By Operator\":{\"aggregations:\":[\"sum(_col18)\",\"sum(_col26)\",\"sum(_col3)\"],\"keys:\":\"_col11, _col12, _col8, _col9\",\"Output:\":[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\",\"_col6\"],\"Statistics:\":\"rows=4638916 width=133\",\"OperatorId:\":\"GBY_48\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 3\",\"PartitionCols:\":\"_col0, _col1, _col2, _col3\",\"Statistics:\":\"rows=4638916 width=133\",\"OperatorId:\":\"RS_49\"}}}}}},\"tag:\":\"0\",\"tagToInput:\":{\"0\":\"Map 1\",\"1\":\"Reducer 7\"}},\"Reducer 3\":{\"Reduce Operator Tree:\":{\"Group By Operator\":{\"aggregations:\":[\"sum(VALUE._col0)\",\"sum(VALUE._col1)\",\"sum(VALUE._col2)\"],\"keys:\":\"KEY._col0, KEY._col1, KEY._col2, KEY._col3\",\"Output:\":[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\",\"_col6\"],\"Statistics:\":\"rows=2319458 width=133\",\"OperatorId:\":\"GBY_50\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 4\",\"Statistics:\":\"rows=2319458 width=133\",\"OperatorId:\":\"RS_52\"}}}},\"tag:\":\"0\",\"tagToInput:\":{\"0\":\"Reducer 2\"}},\"Reducer 4\":{\"Reduce Operator Tree:\":{\"Select Operator\":{\"Output:\":[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\",\"_col6\"],\"Statistics:\":\"rows=2319458 width=133\",\"OperatorId:\":\"SEL_53\",\"children\":{\"Limit\":{\"Number of rows:\":\"100\",\"Statistics:\":\"rows=100 width=133\",\"OperatorId:\":\"LIM_54\",\"children\":{\"File Output Operator\":{\"Statistics:\":\"rows=100 width=133\",\"OperatorId:\":\"FS_55\"}}}}}},\"tag:\":\"0\",\"tagToInput:\":{\"0\":\"Reducer 3\"}},\"Reducer 7\":{\"Reduce Operator Tree:\":{\"Merge Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"keys:\":{\"0\":\"_col1, _col2, _col4\",\"1\":\"_col1, _col2, _col3\"},\"Output:\":[\"_col1\",\"_col3\",\"_col5\",\"_col10\",\"_col11\",\"_col13\"],\"Statistics:\":\"rows=3485288 width=133\",\"OperatorId:\":\"MERGEJOIN_96\",\"children\":{\"Map Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"input vertices:\":{\"1\":\"Map 11\"},\"keys:\":{\"0\":\"_col1\",\"1\":\"_col0\"},\"Output:\":[\"_col3\",\"_col5\",\"_col10\",\"_col11\",\"_col13\",\"_col18\",\"_col19\"],\"Statistics:\":\"rows=3833816 width=133\",\"HybridGraceHashJoin:\":\"true\",\"OperatorId:\":\"MAPJOIN_97\",\"children\":{\"Map Join Operator\":{\"condition map:\":[{\"\":\"{\\\"type\\\":\\\"Inner\\\",\\\"left\\\":0,\\\"right\\\":1}\"}],\"input vertices:\":{\"1\":\"Map 12\"},\"keys:\":{\"0\":\"_col3\",\"1\":\"_col0\"},\"Output:\":[\"_col5\",\"_col10\",\"_col11\",\"_col13\",\"_col18\",\"_col19\",\"_col21\",\"_col22\"],\"Statistics:\":\"rows=4217197 width=133\",\"HybridGraceHashJoin:\":\"true\",\"OperatorId:\":\"MAPJOIN_98\",\"children\":{\"Select Operator\":{\"Output:\":[\"_col1\",\"_col2\",\"_col4\",\"_col5\",\"_col11\",\"_col16\",\"_col17\",\"_col19\"],\"Statistics:\":\"rows=4217197 width=133\",\"OperatorId:\":\"SEL_40\",\"children\":{\"Reduce Output Operator\":{\"outputname:\":\"Reducer 2\",\"PartitionCols:\":\"_col17, _col16\",\"Statistics:\":\"rows=4217197 width=133\",\"OperatorId:\":\"RS_45\"}}}}}}}}}},\"tag:\":\"0\",\"tagToInput:\":{\"0\":\"Map 6\",\"1\":\"Map 9\"}}}}},\"Stage-0\":{\"Fetch Operator\":{\"limit:\":\"100\"}}},\"cboInfo\":\"Plan optimized by CBO.\"}"); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintStream ps = new PrintStream(baos); + jsonParser.print(jsonPlan, ps); + String content = new String(baos.toByteArray(), StandardCharsets.UTF_8); + Assert + .assertEquals( + "Plan optimized by CBO.\n" + + "\n" + + "Vertex dependency in root stage\n" + + "Map 1 <- Map 5 (BROADCAST_EDGE)\n" + + "Map 6 <- Map 8 (BROADCAST_EDGE)\n" + + "Map 9 <- Map 10 (BROADCAST_EDGE)\n" + + "Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE)\n" + + "Reducer 3 <- Reducer 2 (SIMPLE_EDGE)\n" + + "Reducer 4 <- Reducer 3 (SIMPLE_EDGE)\n" + + "Reducer 7 <- Map 11 (BROADCAST_EDGE), Map 12 (BROADCAST_EDGE), Map 6 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE)\n" + + "\n" + + "Stage-0\n" + + " Fetch Operator\n" + + " limit:100\n" + + " Stage-1\n" + + " Reducer 4\n" + + " File Output Operator [FS_55]\n" + + " Limit [LIM_54] (rows=100 width=133)\n" + + " Number of rows:100\n" + + " Select Operator [SEL_53] (rows=2319458 width=133)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\",\"_col6\"]\n" + + " <-Reducer 3 [SIMPLE_EDGE]\n" + + " SHUFFLE [RS_52]\n" + + " Group By Operator [GBY_50] (rows=2319458 width=133)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\",\"_col6\"],aggregations:[\"sum(VALUE._col0)\",\"sum(VALUE._col1)\",\"sum(VALUE._col2)\"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3\n" + + " <-Reducer 2 [SIMPLE_EDGE]\n" + + " SHUFFLE [RS_49]\n" + + " PartitionCols:_col0, _col1, _col2, _col3\n" + + " Group By Operator [GBY_48] (rows=4638916 width=133)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\",\"_col6\"],aggregations:[\"sum(_col18)\",\"sum(_col26)\",\"sum(_col3)\"],keys:_col11, _col12, _col8, _col9\n" + + " Merge Join Operator [MERGEJOIN_99] (rows=4638916 width=133)\n" + + " Conds:RS_44._col1, _col2=RS_45._col17, _col16(Inner),Output:[\"_col3\",\"_col8\",\"_col9\",\"_col11\",\"_col12\",\"_col18\",\"_col26\"]\n" + + " <-Map 1 [SIMPLE_EDGE]\n" + + " SHUFFLE [RS_44]\n" + + " PartitionCols:_col1, _col2\n" + + " Map Join Operator [MAPJOIN_93] (rows=1585702 width=204)\n" + + " Conds:SEL_2._col0=RS_42._col0(Inner),HybridGraceHashJoin:true,Output:[\"_col1\",\"_col2\",\"_col3\"]\n" + + " <-Map 5 [BROADCAST_EDGE]\n" + + " BROADCAST [RS_42]\n" + + " PartitionCols:_col0\n" + + " Select Operator [SEL_5] (rows=4058 width=140)\n" + + " Output:[\"_col0\"]\n" + + " Filter Operator [FIL_86] (rows=4058 width=140)\n" + + " predicate:(d_moy BETWEEN 4 AND 10 and (d_year = 1998) and d_date_sk is not null)\n" + + " TableScan [TS_3] (rows=73049 width=140)\n" + + " default@date_dim,d3,Tbl:COMPLETE,Col:NONE,Output:[\"d_date_sk\",\"d_year\",\"d_moy\"]\n" + + " <-Select Operator [SEL_2] (rows=1441548 width=204)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\",\"_col3\"]\n" + + " Filter Operator [FIL_85] (rows=1441548 width=204)\n" + + " predicate:(cs_bill_customer_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null)\n" + + " TableScan [TS_0] (rows=1441548 width=204)\n" + + " default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:[\"cs_sold_date_sk\",\"cs_bill_customer_sk\",\"cs_item_sk\",\"cs_net_profit\"]\n" + + " <-Reducer 7 [SIMPLE_EDGE]\n" + + " SHUFFLE [RS_45]\n" + + " PartitionCols:_col17, _col16\n" + + " Select Operator [SEL_40] (rows=4217197 width=133)\n" + + " Output:[\"_col1\",\"_col2\",\"_col4\",\"_col5\",\"_col11\",\"_col16\",\"_col17\",\"_col19\"]\n" + + " Map Join Operator [MAPJOIN_98] (rows=4217197 width=133)\n" + + " Conds:MAPJOIN_97._col3=RS_38._col0(Inner),HybridGraceHashJoin:true,Output:[\"_col5\",\"_col10\",\"_col11\",\"_col13\",\"_col18\",\"_col19\",\"_col21\",\"_col22\"]\n" + + " <-Map 12 [BROADCAST_EDGE]\n" + + " BROADCAST [RS_38]\n" + + " PartitionCols:_col0\n" + + " Select Operator [SEL_27] (rows=12 width=261)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\"]\n" + + " Filter Operator [FIL_92] (rows=12 width=261)\n" + + " predicate:s_store_sk is not null\n" + + " TableScan [TS_25] (rows=12 width=261)\n" + + " default@store,store,Tbl:COMPLETE,Col:NONE,Output:[\"s_store_sk\",\"s_store_id\",\"s_store_name\"]\n" + + " <-Map Join Operator [MAPJOIN_97] (rows=3833816 width=133)\n" + + " Conds:MERGEJOIN_96._col1=RS_35._col0(Inner),HybridGraceHashJoin:true,Output:[\"_col3\",\"_col5\",\"_col10\",\"_col11\",\"_col13\",\"_col18\",\"_col19\"]\n" + + " <-Map 11 [BROADCAST_EDGE]\n" + + " BROADCAST [RS_35]\n" + + " PartitionCols:_col0\n" + + " Select Operator [SEL_24] (rows=18000 width=279)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\"]\n" + + " Filter Operator [FIL_91] (rows=18000 width=279)\n" + + " predicate:i_item_sk is not null\n" + + " TableScan [TS_22] (rows=18000 width=279)\n" + + " default@item,item,Tbl:COMPLETE,Col:NONE,Output:[\"i_item_sk\",\"i_item_id\",\"i_item_desc\"]\n" + + " <-Merge Join Operator [MERGEJOIN_96] (rows=3485288 width=133)\n" + + " Conds:RS_31._col1, _col2, _col4=RS_32._col1, _col2, _col3(Inner),Output:[\"_col1\",\"_col3\",\"_col5\",\"_col10\",\"_col11\",\"_col13\"]\n" + + " <-Map 6 [SIMPLE_EDGE]\n" + + " SHUFFLE [RS_31]\n" + + " PartitionCols:_col1, _col2, _col4\n" + + " Map Join Operator [MAPJOIN_94] (rows=3168444 width=133)\n" + + " Conds:SEL_8._col0=RS_29._col0(Inner),HybridGraceHashJoin:true,Output:[\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\"]\n" + + " <-Map 8 [BROADCAST_EDGE]\n" + + " BROADCAST [RS_29]\n" + + " PartitionCols:_col0\n" + + " Select Operator [SEL_11] (rows=18262 width=140)\n" + + " Output:[\"_col0\"]\n" + + " Filter Operator [FIL_88] (rows=18262 width=140)\n" + + " predicate:((d_moy = 4) and (d_year = 1998) and d_date_sk is not null)\n" + + " TableScan [TS_9] (rows=73049 width=140)\n" + + " default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:[\"d_date_sk\",\"d_year\",\"d_moy\"]\n" + + " <-Select Operator [SEL_8] (rows=2880404 width=133)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\",\"_col5\"]\n" + + " Filter Operator [FIL_87] (rows=2880404 width=133)\n" + + " predicate:(ss_item_sk is not null and ss_customer_sk is not null and ss_ticket_number is not null and ss_sold_date_sk is not null and ss_store_sk is not null)\n" + + " TableScan [TS_6] (rows=2880404 width=133)\n" + + " default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:[\"ss_sold_date_sk\",\"ss_item_sk\",\"ss_customer_sk\",\"ss_store_sk\",\"ss_ticket_number\",\"ss_net_profit\"]\n" + + " <-Map 9 [SIMPLE_EDGE]\n" + + " SHUFFLE [RS_32]\n" + + " PartitionCols:_col1, _col2, _col3\n" + + " Map Join Operator [MAPJOIN_95] (rows=316265 width=112)\n" + + " Conds:SEL_14._col0=RS_19._col0(Inner),HybridGraceHashJoin:true,Output:[\"_col1\",\"_col2\",\"_col3\",\"_col4\"]\n" + + " <-Map 10 [BROADCAST_EDGE]\n" + + " BROADCAST [RS_19]\n" + + " PartitionCols:_col0\n" + + " Select Operator [SEL_17] (rows=4058 width=140)\n" + + " Output:[\"_col0\"]\n" + + " Filter Operator [FIL_90] (rows=4058 width=140)\n" + + " predicate:(d_moy BETWEEN 4 AND 10 and (d_year = 1998) and d_date_sk is not null)\n" + + " TableScan [TS_15] (rows=73049 width=140)\n" + + " default@date_dim,d2,Tbl:COMPLETE,Col:NONE,Output:[\"d_date_sk\",\"d_year\",\"d_moy\"]\n" + + " <-Select Operator [SEL_14] (rows=287514 width=112)\n" + + " Output:[\"_col0\",\"_col1\",\"_col2\",\"_col3\",\"_col4\"]\n" + + " Filter Operator [FIL_89] (rows=287514 width=112)\n" + + " predicate:(sr_item_sk is not null and sr_customer_sk is not null and sr_ticket_number is not null and sr_returned_date_sk is not null)\n" + + " TableScan [TS_12] (rows=287514 width=112)\n" + + " default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:[\"sr_returned_date_sk\",\"sr_item_sk\",\"sr_customer_sk\",\"sr_ticket_number\",\"sr_net_loss\"]\n" + + "\n" + "", content); + } + +}