private StageInfo buildStageInfo(StageId stageId, Map<StageId, StageInfo> stageInfos) { StageInfo parent = stageInfos.get(stageId); checkArgument(parent != null, "No stageInfo for %s", parent); List<StageInfo> childStages = stageLinkages.get(stageId).getChildStageIds().stream() .map(childStageId -> buildStageInfo(childStageId, stageInfos)) .collect(toImmutableList()); if (childStages.isEmpty()) { return parent; } return new StageInfo( parent.getStageId(), parent.getState(), parent.getSelf(), parent.getPlan(), parent.getTypes(), parent.getStageStats(), parent.getTasks(), childStages, parent.getFailureCause()); }
private static void assertState(StageStateMachine stateMachine, StageState expectedState) { assertEquals(stateMachine.getStageId(), STAGE_ID); assertEquals(stateMachine.getLocation(), LOCATION); assertSame(stateMachine.getSession(), TEST_SESSION); StageInfo stageInfo = stateMachine.getStageInfo(ImmutableList::of); assertEquals(stageInfo.getStageId(), STAGE_ID); assertEquals(stageInfo.getSelf(), LOCATION); assertEquals(stageInfo.getSubStages(), ImmutableList.of()); assertEquals(stageInfo.getTasks(), ImmutableList.of()); assertEquals(stageInfo.getTypes(), ImmutableList.of(VARCHAR)); assertSame(stageInfo.getPlan(), PLAN_FRAGMENT); assertEquals(stateMachine.getState(), expectedState); assertEquals(stageInfo.getState(), expectedState); if (expectedState == StageState.FAILED) { ExecutionFailureInfo failure = stageInfo.getFailureCause(); assertEquals(failure.getMessage(), FAILED_CAUSE.getMessage()); assertEquals(failure.getType(), FAILED_CAUSE.getClass().getName()); } else { assertNull(stageInfo.getFailureCause()); } }
outputStage.getSelf(), outputStage.getTypes(), outputStage.getStageStats(),
private static List<Column> createColumnsList(QueryInfo queryInfo) { requireNonNull(queryInfo, "queryInfo is null"); StageInfo outputStage = queryInfo.getOutputStage(); requireNonNull(outputStage, "outputStage is null"); List<String> names = queryInfo.getFieldNames(); List<Type> types = outputStage.getTypes(); checkArgument(names.size() == types.size(), "names and types size mismatch"); ImmutableList.Builder<Column> list = ImmutableList.builder(); for (int i = 0; i < names.size(); i++) { String name = names.get(i); TypeSignature typeSignature = types.get(i).getTypeSignature(); String type = typeSignature.toString(); list.add(new Column(name, type, new ClientTypeSignature(typeSignature))); } return list.build(); }
private StageInfo buildStageInfo(StageId stageId, Map<StageId, StageInfo> stageInfos) { StageInfo parent = stageInfos.get(stageId); checkArgument(parent != null, "No stageInfo for %s", parent); List<StageInfo> childStages = stageLinkages.get(stageId).getChildStageIds().stream() .map(childStageId -> buildStageInfo(childStageId, stageInfos)) .collect(toImmutableList()); if (childStages.isEmpty()) { return parent; } return new StageInfo( parent.getStageId(), parent.getState(), parent.getSelf(), parent.getPlan(), parent.getTypes(), parent.getStageStats(), parent.getTasks(), childStages, parent.getFailureCause()); }
private static void assertState(StageStateMachine stateMachine, StageState expectedState) { assertEquals(stateMachine.getStageId(), STAGE_ID); assertEquals(stateMachine.getLocation(), LOCATION); assertSame(stateMachine.getSession(), TEST_SESSION); StageInfo stageInfo = stateMachine.getStageInfo(ImmutableList::of, ImmutableList::of); assertEquals(stageInfo.getStageId(), STAGE_ID); assertEquals(stageInfo.getSelf(), LOCATION); assertEquals(stageInfo.getSubStages(), ImmutableList.of()); assertEquals(stageInfo.getTasks(), ImmutableList.of()); assertEquals(stageInfo.getTypes(), ImmutableList.of(VARCHAR)); assertSame(stageInfo.getPlan(), PLAN_FRAGMENT); assertEquals(stateMachine.getState(), expectedState); assertEquals(stageInfo.getState(), expectedState); if (expectedState == StageState.FAILED) { ExecutionFailureInfo failure = stageInfo.getFailureCause(); assertEquals(failure.getMessage(), FAILED_CAUSE.getMessage()); assertEquals(failure.getType(), FAILED_CAUSE.getClass().getName()); } else { assertNull(stageInfo.getFailureCause()); } }
List<Type> types = queryInfo.getOutputStage().getTypes();
queryInfo.getOutputStage().getSelf(), queryInfo.getOutputStage().getTypes(), queryInfo.getOutputStage().getStageStats(),