Skip to content

Commit 0f42f69

Browse files
committed
TableFinishInfo is inside the union for thrift
1 parent 1e69276 commit 0f42f69

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

presto-main-base/src/main/java/com/facebook/presto/event/QueryMonitor.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import com.facebook.presto.metadata.Metadata;
4242
import com.facebook.presto.metadata.SessionPropertyManager;
4343
import com.facebook.presto.operator.OperatorInfo;
44-
import com.facebook.presto.operator.OperatorStats;
44+
import com.facebook.presto.operator.OperatorInfoUnion;
4545
import com.facebook.presto.operator.TableFinishInfo;
4646
import com.facebook.presto.operator.TaskStats;
4747
import com.facebook.presto.server.BasicQueryInfo;
@@ -82,6 +82,7 @@
8282
import java.util.LinkedHashMap;
8383
import java.util.List;
8484
import java.util.Map;
85+
import java.util.Objects;
8586
import java.util.Optional;
8687
import java.util.stream.Collectors;
8788

@@ -601,10 +602,22 @@ private static QueryIOMetadata getQueryIOMetadata(QueryInfo queryInfo)
601602

602603
Optional<QueryOutputMetadata> output = Optional.empty();
603604
if (queryInfo.getOutput().isPresent()) {
605+
// Check both info (JSON) and infoUnion (Thrift) fields for TableFinishInfo
604606
Optional<TableFinishInfo> tableFinishInfo = queryInfo.getQueryStats().getOperatorSummaries().stream()
605-
.map(OperatorStats::getInfo)
606-
.filter(TableFinishInfo.class::isInstance)
607-
.map(TableFinishInfo.class::cast)
607+
.map(operatorStats -> {
608+
// First try the info field (JSON serialization)
609+
OperatorInfo info = operatorStats.getInfo();
610+
if (info instanceof TableFinishInfo) {
611+
return (TableFinishInfo) info;
612+
}
613+
// Fall back to infoUnion field (Thrift serialization)
614+
OperatorInfoUnion infoUnion = operatorStats.getInfoUnion();
615+
if (infoUnion != null) {
616+
return infoUnion.getTableFinishInfo();
617+
}
618+
return null;
619+
})
620+
.filter(Objects::nonNull)
608621
.findFirst();
609622

610623
Optional<List<OutputColumnMetadata>> outputColumnsMetadata = queryInfo.getOutput().get().getColumns()

0 commit comments

Comments
 (0)