[ https://issues.apache.org/jira/browse/DRILL-6140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16361250#comment-16361250 ]
ASF GitHub Bot commented on DRILL-6140: --------------------------------------- Github user kkhatua commented on a diff in the pull request: https://github.com/apache/drill/pull/1116#discussion_r167649582 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/OperatorWrapper.java --- @@ -45,12 +45,25 @@ private final String operatorName; private final int size; - public OperatorWrapper(int major, List<ImmutablePair<ImmutablePair<OperatorProfile, Integer>, String>> opsAndHostsList) { + public OperatorWrapper(int major, List<ImmutablePair<ImmutablePair<OperatorProfile, Integer>, String>> opsAndHostsList, Map<String, String> phyOperMap) { Preconditions.checkArgument(opsAndHostsList.size() > 0); this.major = major; firstProfile = opsAndHostsList.get(0).getLeft().getLeft(); operatorType = CoreOperatorType.valueOf(firstProfile.getOperatorType()); - operatorName = operatorType == null ? UNKNOWN_OPERATOR : operatorType.toString(); + //Update Name from Physical Map + String path = new OperatorPathBuilder().setMajor(major).setOperator(firstProfile).build(); + //Use Plan Extracted Operator Names if available + String extractedOpName = phyOperMap.get(path); + String inferredOpName = operatorType == null ? UNKNOWN_OPERATOR : operatorType.toString(); + //Revert to inferred names for exceptional cases --- End diff -- Added all the exceptions in comments > Operators listed in Profiles Page doesn't always correspond with operator > specified in Physical Plan > ---------------------------------------------------------------------------------------------------- > > Key: DRILL-6140 > URL: https://issues.apache.org/jira/browse/DRILL-6140 > Project: Apache Drill > Issue Type: Bug > Components: Web Server > Affects Versions: 1.12.0 > Reporter: Kunal Khatua > Assignee: Kunal Khatua > Priority: Major > Fix For: 1.13.0 > > Attachments: 25978a1a-24cf-fb4a-17af-59e7115b4fa1.sys.drill > > > A query's physical plan correctly shows > {code} > 00-00 Screen : rowType = RecordType(BIGINT EXPR$0): rowcount = 1.0, > cumulative cost = { ... > 00-01 Project(EXPR$0=[$0]) : rowType = RecordType(BIGINT EXPR$0): rowcount > = 1.0, cumulative cost = { ... > 00-02 StreamAgg(group=[{}], EXPR$0=[$SUM0($0)]) : rowType = > RecordType(BIGINT EXPR$0): rowcount = 1.0, cumulative cost = { ... > 00-03 UnionExchange : rowType = RecordType(BIGINT EXPR$0): rowcount = > 1.0, cumulative cost = { ... > 01-01 StreamAgg(group=[{}], EXPR$0=[COUNT()]) : rowType = > RecordType(BIGINT EXPR$0): rowcount = 1.0, cumulative cost = { ... > 01-02 Project($f0=[0]) : rowType = RecordType(INTEGER $f0): > rowcount = 1.79279253E7, cumulative cost = ... > 01-03 Flatten(flattenField=[$1]) : rowType = RecordType(ANY > rfsSpecCode, ... > 01-04 Project(rfsSpecCode=[$1], PUResultsArray=[$2]) : rowType > = ... > 01-05 SelectionVectorRemover : rowType = RecordType(ANY > schemaName, ... > 01-06 Filter(condition=[=($0, 'OnyxBlue')]) : rowType = ... > 01-07 Project(schemaName=[$0], ITEM=[ITEM($1, > 'rfsSpecCode')], ... > 01-08 Scan(groupscan=[ParquetGroupScan > [entries=[ReadEntryWithPath [ > {code} > However, the profile page shows the operators as... > ||Operator ID || Type || Metrics|| > |00-xx-00 | SCREEN | ... | > |00-xx-01 | PROJECT | ... | > |00-xx-02 | STREAMING_AGGREGATE | ... | > |00-xx-03 | UNORDERED_RECEIVER | ... | > |01-xx-00 | SINGLE_SENDER | ... | > |01-xx-01 | STREAMING_AGGREGATE | ... | > |01-xx-02 | PROJECT | ... | > |01-xx-03 | SINGLE_SENDER | ... | > |01-xx-04 | PROJECT | ... | > |01-xx-05 | SELECTION_VECTOR_REMOVER | ... | > |01-xx-06 | FILTER | ... | > |01-xx-07 | PROJECT | ... | > |01-xx-08 | PARQUET_ROW_GROUP_SCAN | ... | > As you can see ... {{FLATTEN}} operator appears as a {{SINGLE_SENDER}} > making the profile hard to interpret. -- This message was sent by Atlassian JIRA (v7.6.3#76005)