digraph G {
0 [id="node0" labelType="html" label="<br><b>DeserializeToObject</b><br><br>" tooltip="DeserializeToObject createexternalrow(invoke(shardId#943631.toString()), static_invoke(java.lang.Long.valueOf(worklistShardItemId#943632L)), static_invoke(java.lang.Double.valueOf(qty#981540)), invoke(demandChannel#981520.toString()), invoke(demandStream#981521.toString()), mapobjects(lambdavariable(MapObject, StructField(label,StringType,true), StructField(dateTime,TimestampType,true), StructField(value,DoubleType,true), false, -1), createexternalrow(invoke(lambdavariable(MapObject, StructField(label,StringType,true), StructField(dateTime,TimestampType,true), StructField(value,DoubleType,true), false, -1).label.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(label,StringType,true), StructField(dateTime,TimestampType,true), StructField(value,DoubleType,true), false, -1).dateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(label,StringType,true), StructField(dateTime,TimestampType,true), StructField(value,DoubleType,true), false, -1).value)), StructField(label,StringType,true), StructField(dateTime,TimestampType,true), StructField(value,DoubleType,true)), kpis#981549, Some(class scala.collection.mutable.ArraySeq)), StructField(shardId,StringType,true), StructField(worklistShardItemId,LongType,true), StructField(qty,DoubleType,true), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpis,ArrayType(StructType(StructField(label,StringType,true),StructField(dateTime,TimestampType,true),StructField(value,DoubleType,true)),false),true)), obj#981869: org.apache.spark.sql.Row"];
1 [id="node1" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#943631, worklistShardItemId#943632L, qty#981540, demandChannel#981520, demandStream#981521, kpis#981549]"];
2 [id="node2" labelType="html" label="<br><b>SortAggregate</b><br><br>" tooltip="SortAggregate(key=[demandChannel#981520, shardId#943631, qty#981540, worklistShardItemId#943632L, demandStream#981521], functions=[first(kpis#981549, false)])"];
subgraph cluster3 {
isCluster="true";
id="cluster3";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
4 [id="node4" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [demandChannel#981520 ASC NULLS FIRST, shardId#943631 ASC NULLS FIRST, qty#981540 ASC NULLS FIRST, worklistShardItemId#943632L ASC NULLS FIRST, demandStream#981521 ASC NULLS FIRST], false, 0"];
}
5 [id="node5" labelType="html" label="<b>Exchange</b><br><br>number of partitions: 37" tooltip="Exchange hashpartitioning(demandChannel#981520, shardId#943631, qty#981540, worklistShardItemId#943632L, demandStream#981521, 37), ENSURE_REQUIREMENTS, [plan_id=1625050]"];
6 [id="node6" labelType="html" label="<br><b>SortAggregate</b><br><br>" tooltip="SortAggregate(key=[demandChannel#981520, shardId#943631, knownfloatingpointnormalized(normalizenanandzero(qty#981540)) AS qty#981540, worklistShardItemId#943632L, demandStream#981521], functions=[partial_first(kpis#981549, false)])"];
subgraph cluster7 {
isCluster="true";
id="cluster7";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
8 [id="node8" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [demandChannel#981520 ASC NULLS FIRST, shardId#943631 ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(qty#981540)) AS qty#981540 ASC NULLS FIRST, worklistShardItemId#943632L ASC NULLS FIRST, demandStream#981521 ASC NULLS FIRST], false, 0"];
9 [id="node9" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, qty#981540, demandChannel#981520, demandStream#981521, kpis#981549]"];
10 [id="node10" labelType="html" label="<br><b>BroadcastHashJoin</b><br><br>" tooltip="BroadcastHashJoin [coalesce(product#981513, ), isnull(product#981513), coalesce(plant#981514, ), isnull(plant#981514)], [coalesce(product#943634, ), isnull(product#943634), coalesce(plant#943635, ), isnull(plant#943635)], Inner, BuildRight, ((qty#981540 <=> qty#943638) OR isnull(qty#943638)), false"];
}
11 [id="node11" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
12 [id="node12" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#981494.productId AS product#981513, prodPlantResults#981494.plantId AS plant#981514, null AS qty#981540, null AS demandChannel#981520, null AS demandStream#981521, transform(prodPlantResults#981494.kpiResults, lambdafunction(struct(label, lambda kpi#981550.label, dateTime, lambda kpi#981550.datetime, value, lambda kpi#981550.value), lambda kpi#981550, false)) AS kpis#981549]"];
13 [id="node13" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#981494]"];
subgraph cluster14 {
isCluster="true";
id="cluster14";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
15 [id="node15" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#981487), false, [prodPlantResults#981494]"];
16 [id="node16" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#981487]"];
17 [id="node17" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#981487, true) > 0) AND isnotnull(prodPlantResults#981487))"];
18 [id="node18" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#981486, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#981487]"];
}
19 [id="node19" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#981483]"];
20 [id="node20" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#981685 AS product#981500, _extract_plantId#981686 AS plant#981501, quantityKpiResults#981506.quantity AS qty#981507, null AS demandChannel#981509, null AS demandStream#981510, transform(quantityKpiResults#981506.kpiResults, lambdafunction(struct(label, lambda kpi#981550.label, dateTime, lambda kpi#981550.datetime, value, lambda kpi#981550.value), lambda kpi#981550, false)) AS kpis#981683]"];
subgraph cluster21 {
isCluster="true";
id="cluster21";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
22 [id="node22" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(_extract_quantityKpiResults#981687), [_extract_productId#981685, _extract_plantId#981686], false, [quantityKpiResults#981506]"];
23 [id="node23" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#981539.productId AS _extract_productId#981685, prodPlantResults#981539.plantId AS _extract_plantId#981686, prodPlantResults#981539.quantityKpiResults AS _extract_quantityKpiResults#981687]"];
24 [id="node24" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#981539.quantityKpiResults, true) > 0) AND isnotnull(prodPlantResults#981539.quantityKpiResults))"];
}
25 [id="node25" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#981539], [(size(prodPlantResults#981539.quantityKpiResults, true) > 0), isnotnull(prodPlantResults#981539.quantityKpiResults)]"];
subgraph cluster26 {
isCluster="true";
id="cluster26";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
27 [id="node27" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#981487), false, [prodPlantResults#981494]"];
28 [id="node28" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#981487]"];
29 [id="node29" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#981487, true) > 0) AND isnotnull(prodPlantResults#981487))"];
30 [id="node30" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#981486, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#981487]"];
}
31 [id="node31" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#981483]"];
32 [id="node32" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#981688 AS product#981522, _extract_plantId#981689 AS plant#981523, null AS qty#981545, demandChannelStreamKpiResults#981528.demandChannel AS demandChannel#981530, demandChannelStreamKpiResults#981528.demandStream AS demandStream#981532, transform(demandChannelStreamKpiResults#981528.kpiResults, lambdafunction(struct(label, lambda kpi#981550.label, dateTime, lambda kpi#981550.datetime, value, lambda kpi#981550.value), lambda kpi#981550, false)) AS kpis#981684]"];
subgraph cluster33 {
isCluster="true";
id="cluster33";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
34 [id="node34" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(_extract_demandChannelStreamKpiResults#981690), [_extract_productId#981688, _extract_plantId#981689], false, [demandChannelStreamKpiResults#981528]"];
35 [id="node35" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#981544.productId AS _extract_productId#981688, prodPlantResults#981544.plantId AS _extract_plantId#981689, prodPlantResults#981544.demandChannelStreamKpiResults AS _extract_demandChannelStreamKpiResults#981690]"];
36 [id="node36" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#981544.demandChannelStreamKpiResults, true) > 0) AND isnotnull(prodPlantResults#981544.demandChannelStreamKpiResults))"];
}
37 [id="node37" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#981544], [(size(prodPlantResults#981544.demandChannelStreamKpiResults, true) > 0), isnotnull(prodPlantResults#981544.demandChannelStreamKpiResults)]"];
subgraph cluster38 {
isCluster="true";
id="cluster38";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
39 [id="node39" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#981487), false, [prodPlantResults#981494]"];
40 [id="node40" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#981487]"];
41 [id="node41" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#981487, true) > 0) AND isnotnull(prodPlantResults#981487))"];
42 [id="node42" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#981486, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#981487]"];
}
43 [id="node43" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#981483]"];
44 [id="node44" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 2 ms<br>time to build: 2 ms<br>time to collect: 484 ms<br>number of output rows: 546<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1625043]"];
subgraph cluster45 {
isCluster="true";
id="cluster45";
label="WholeStageCodegen (4)\n \nduration: total (min, med, max (stageId: taskId))\n184 ms (1 ms, 3 ms, 14 ms (stage 102380.0: task 337023))";
tooltip="WholeStageCodegen (4)";
46 [id="node46" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build total (min, med, max (stageId: taskId))<br>61 ms (0 ms, 2 ms, 3 ms (stage 102380.0: task 337011))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 102380.0: task 337015))<br>number of output rows: 546<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#943635, shardId#943631, qty#943638, worklistShardItemId#943632L, product#943634], functions=[])"];
}
47 [id="node47" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 546<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 546<br>local bytes read total (min, med, max (stageId: taskId))<br>37.7 KiB (354.0 B, 1015.0 B, 1926.0 B (stage 102380.0: task 337030))<br>merged fetch fallback count: 0<br>local blocks read: 201<br>remote merged chunks fetched: 0<br>remote blocks read: 252<br>data size total (min, med, max (stageId: taskId))<br>68.3 KiB (640.0 B, 1792.0 B, 3.6 KiB (stage 102379.0: task 336948))<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>37 ms (0 ms, 0 ms, 1 ms (stage 102379.0: task 336944))<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time total (min, med, max (stageId: taskId))<br>8 ms (0 ms, 0 ms, 1 ms (stage 102380.0: task 337027))<br>remote bytes read total (min, med, max (stageId: taskId))<br>47.2 KiB (438.0 B, 1242.0 B, 2.4 KiB (stage 102380.0: task 337020))<br>number of partitions: 37<br>remote reqs duration total (min, med, max (stageId: taskId))<br>128 ms (0 ms, 4 ms, 8 ms (stage 102380.0: task 337020))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>84.9 KiB (888.0 B, 2.2 KiB, 4.1 KiB (stage 102379.0: task 336948))" tooltip="Exchange hashpartitioning(plant#943635, shardId#943631, qty#943638, worklistShardItemId#943632L, product#943634, 37), ENSURE_REQUIREMENTS, [plan_id=1625039]"];
subgraph cluster48 {
isCluster="true";
id="cluster48";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n1.4 s (0 ms, 2 ms, 149 ms (stage 102379.0: task 336937))";
tooltip="WholeStageCodegen (3)";
49 [id="node49" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build total (min, med, max (stageId: taskId))<br>29 ms (0 ms, 0 ms, 3 ms (stage 102379.0: task 336943))<br>peak memory total (min, med, max (stageId: taskId))<br>22.5 MiB (256.0 KiB, 256.0 KiB, 2.3 MiB (stage 102379.0: task 336951))<br>number of output rows: 546<br>number of sort fallback tasks: 0<br>avg hash probes per key (min, med, max (stageId: taskId)):<br>(1, 1, 1 (stage 102379.0: task 336951))" tooltip="HashAggregate(keys=[plant#943635, shardId#943631, knownfloatingpointnormalized(normalizenanandzero(qty#943638)) AS qty#943638, worklistShardItemId#943632L, product#943634], functions=[])"];
50 [id="node50" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, product#943634, plant#943635, qty#943638]"];
51 [id="node51" labelType="html" label="<b>Filter</b><br><br>number of output rows: 546" tooltip="Filter isNewlyCalculated#978987: boolean"];
}
52 [id="node52" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 546" tooltip="InMemoryTableScan [isNewlyCalculated#978987, plant#943635, product#943634, qty#943638, shardId#943631, worklistShardItemId#943632L], [isNewlyCalculated#978987]"];
53 [id="node53" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster54 {
isCluster="true";
id="cluster54";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
55 [id="node55" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, null AS demandChannel#978984, null AS demandStream#978985, [] AS kpis#979019, true AS isNewlyCalculated#978987]"];
56 [id="node56" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 0<br>spill size: 0.0 B" tooltip="SortMergeJoin [coalesce(shardId#943631, ), isnull(shardId#943631), coalesce(worklistShardItemId#943632L, 0), isnull(worklistShardItemId#943632L), coalesce(version#943633, 0), isnull(version#943633), coalesce(product#943634, ), isnull(product#943634), coalesce(plant#943635, ), isnull(plant#943635), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#943638, 0.0))), isnull(qty#943638)], [coalesce(shardId#978976, ), isnull(shardId#978976), coalesce(worklistShardItemId#978977L, 0), isnull(worklistShardItemId#978977L), coalesce(version#978978, 0), isnull(version#978978), coalesce(product#978979, ), isnull(product#978979), coalesce(plant#978980, ), isnull(plant#978980), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#978751, 0.0))), isnull(qty#978751)], LeftAnti"];
}
subgraph cluster57 {
isCluster="true";
id="cluster57";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
58 [id="node58" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [coalesce(shardId#943631, ) ASC NULLS FIRST, isnull(shardId#943631) ASC NULLS FIRST, coalesce(worklistShardItemId#943632L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#943632L) ASC NULLS FIRST, coalesce(version#943633, 0) ASC NULLS FIRST, isnull(version#943633) ASC NULLS FIRST, coalesce(product#943634, ) ASC NULLS FIRST, isnull(product#943634) ASC NULLS FIRST, coalesce(plant#943635, ) ASC NULLS FIRST, isnull(plant#943635) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#943638, 0.0))) ASC NULLS FIRST, isnull(qty#943638) ASC NULLS FIRST], false, 0"];
}
59 [id="node59" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(coalesce(shardId#943631, ), isnull(shardId#943631), coalesce(worklistShardItemId#943632L, 0), isnull(worklistShardItemId#943632L), coalesce(version#943633, 0), isnull(version#943633), coalesce(product#943634, ), isnull(product#943634), coalesce(plant#943635, ), isnull(plant#943635), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#943638, 0.0))), isnull(qty#943638), 37), ENSURE_REQUIREMENTS, [plan_id=1624232]"];
60 [id="node60" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638]"];
61 [id="node61" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#943634, plant#943635, 37), REPARTITION_BY_NUM, [plan_id=1624002]"];
subgraph cluster62 {
isCluster="true";
id="cluster62";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
63 [id="node63" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#943631,worklistShardItemId#943632L,version#943633,product#943634,plant#943635,periodStart#943636,periodEnd#943637,qty#943638]"];
}
subgraph cluster64 {
isCluster="true";
id="cluster64";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
65 [id="node65" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [coalesce(shardId#978976, ) ASC NULLS FIRST, isnull(shardId#978976) ASC NULLS FIRST, coalesce(worklistShardItemId#978977L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#978977L) ASC NULLS FIRST, coalesce(version#978978, 0) ASC NULLS FIRST, isnull(version#978978) ASC NULLS FIRST, coalesce(product#978979, ) ASC NULLS FIRST, isnull(product#978979) ASC NULLS FIRST, coalesce(plant#978980, ) ASC NULLS FIRST, isnull(plant#978980) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#978751, 0.0))) ASC NULLS FIRST, isnull(qty#978751) ASC NULLS FIRST], false, 0"];
}
66 [id="node66" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(coalesce(shardId#978976, ), isnull(shardId#978976), coalesce(worklistShardItemId#978977L, 0), isnull(worklistShardItemId#978977L), coalesce(version#978978, 0), isnull(version#978978), coalesce(product#978979, ), isnull(product#978979), coalesce(plant#978980, ), isnull(plant#978980), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#978751, 0.0))), isnull(qty#978751), 37), ENSURE_REQUIREMENTS, [plan_id=1624252]"];
67 [id="node67" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
68 [id="node68" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#978976, worklistShardItemId#978977L, version#978978, product#978979, plant#978980, qty#978751]"];
subgraph cluster69 {
isCluster="true";
id="cluster69";
label="WholeStageCodegen (7)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (7)";
70 [id="node70" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, cachedQty#978749 AS qty#978751, demandChannel#978744, demandStream#978745, cachedKpis#978750 AS kpis#978752]"];
71 [id="node71" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 0<br>spill size: 0.0 B" tooltip="SortMergeJoin [worklistShardItemId#943632L, shardId#943631], [cachedWorklistShardItemId#978748L, cachedShardId#978747], Inner"];
}
subgraph cluster72 {
isCluster="true";
id="cluster72";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
73 [id="node73" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [worklistShardItemId#943632L ASC NULLS FIRST, shardId#943631 ASC NULLS FIRST], false, 0"];
}
74 [id="node74" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(worklistShardItemId#943632L, shardId#943631, 37), ENSURE_REQUIREMENTS, [plan_id=1624120]"];
subgraph cluster75 {
isCluster="true";
id="cluster75";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
76 [id="node76" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 0 ms<br>peak memory: 0.0 B<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#943635, shardId#943631, version#943633, worklistShardItemId#943632L, product#943634], functions=[])"];
}
77 [id="node77" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(plant#943635, shardId#943631, version#943633, worklistShardItemId#943632L, product#943634, 37), ENSURE_REQUIREMENTS, [plan_id=1624116]"];
subgraph cluster78 {
isCluster="true";
id="cluster78";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
79 [id="node79" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 0 ms<br>peak memory: 0.0 B<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#943635, shardId#943631, version#943633, worklistShardItemId#943632L, product#943634], functions=[])"];
80 [id="node80" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635]"];
81 [id="node81" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 0" tooltip="BroadcastHashJoin [worklistShardItemId#943632L, shardId#943631], [cachedWorklistShardItemId#978738L, cachedShardId#978737], Inner, BuildLeft, ((qty#943638 = cachedQty#978739) OR isnull(qty#943638)), false"];
89 [id="node89" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978731 AS cachedShardId#978737, worklistShardItemId#978732L AS cachedWorklistShardItemId#978738L, qty#978733 AS cachedQty#978739]"];
90 [id="node90" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#978732L) AND isnotnull(shardId#978731))"];
91 [id="node91" labelType="html" label="<b>Scan ExistingRDD</b><br><br>number of output rows: 0" tooltip="Scan ExistingRDD[shardId#978731,worklistShardItemId#978732L,qty#978733,demandChannel#978734,demandStream#978735,kpis#978736]"];
}
82 [id="node82" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 0 ms<br>number of output rows: 0<br>data size: 0.0 B" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, bigint, false], input[0, string, false]),false), [plan_id=1624110]"];
subgraph cluster83 {
isCluster="true";
id="cluster83";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
84 [id="node84" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#943632L) AND isnotnull(shardId#943631))"];
}
85 [id="node85" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638], [isnotnull(worklistShardItemId#943632L), isnotnull(shardId#943631)]"];
86 [id="node86" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#943634, plant#943635, 37), REPARTITION_BY_NUM, [plan_id=1624002]"];
subgraph cluster87 {
isCluster="true";
id="cluster87";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
88 [id="node88" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#943631,worklistShardItemId#943632L,version#943633,product#943634,plant#943635,periodStart#943636,periodEnd#943637,qty#943638]"];
}
subgraph cluster92 {
isCluster="true";
id="cluster92";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
93 [id="node93" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [cachedWorklistShardItemId#978748L ASC NULLS FIRST, cachedShardId#978747 ASC NULLS FIRST], false, 0"];
}
94 [id="node94" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#978748L, cachedShardId#978747, 37), ENSURE_REQUIREMENTS, [plan_id=1624126]"];
subgraph cluster95 {
isCluster="true";
id="cluster95";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
96 [id="node96" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978741 AS cachedShardId#978747, worklistShardItemId#978742L AS cachedWorklistShardItemId#978748L, qty#978743 AS cachedQty#978749, demandChannel#978744, demandStream#978745, kpis#978746 AS cachedKpis#978750]"];
97 [id="node97" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#978742L) AND isnotnull(shardId#978741))"];
98 [id="node98" labelType="html" label="<b>Scan ExistingRDD</b><br><br>number of output rows: 0" tooltip="Scan ExistingRDD[shardId#978741,worklistShardItemId#978742L,qty#978743,demandChannel#978744,demandStream#978745,kpis#978746]"];
}
subgraph cluster99 {
isCluster="true";
id="cluster99";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
100 [id="node100" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978958, worklistShardItemId#978959L, version#978960, product#978961, plant#978962, qty#978965]"];
101 [id="node101" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 0" tooltip="BroadcastHashJoin [worklistShardItemId#978959L, shardId#978958], [cachedWorklistShardItemId#978973L, cachedShardId#978972], Inner, BuildLeft, false"];
109 [id="node109" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978966 AS cachedShardId#978972, worklistShardItemId#978967L AS cachedWorklistShardItemId#978973L]"];
110 [id="node110" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#978967L) AND isnotnull(shardId#978966))"];
111 [id="node111" labelType="html" label="<b>Scan ExistingRDD</b><br><br>number of output rows: 0" tooltip="Scan ExistingRDD[shardId#978966,worklistShardItemId#978967L,qty#978968,demandChannel#978969,demandStream#978970,kpis#978971]"];
}
102 [id="node102" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 0 ms<br>number of output rows: 0<br>data size: 0.0 B" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, bigint, false], input[0, string, false]),false), [plan_id=1624246]"];
subgraph cluster103 {
isCluster="true";
id="cluster103";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
104 [id="node104" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((isnull(qty#978965) AND isnotnull(worklistShardItemId#978959L)) AND isnotnull(shardId#978958))"];
}
105 [id="node105" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#978958, worklistShardItemId#978959L, version#978960, product#978961, plant#978962, qty#978965], [isnull(qty#978965), isnotnull(worklistShardItemId#978959L), isnotnull(shardId#978958)]"];
106 [id="node106" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#943634, plant#943635, 37), REPARTITION_BY_NUM, [plan_id=1624002]"];
subgraph cluster107 {
isCluster="true";
id="cluster107";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
108 [id="node108" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#943631,worklistShardItemId#943632L,version#943633,product#943634,plant#943635,periodStart#943636,periodEnd#943637,qty#943638]"];
}
subgraph cluster112 {
isCluster="true";
id="cluster112";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
113 [id="node113" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978989, worklistShardItemId#978990L, version#978991, product#978992, plant#978993, qty#979017, demandChannel#979010, demandStream#979011, kpis#979018, false AS isNewlyCalculated#978988]"];
}
114 [id="node114" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [demandChannel#979010, demandStream#979011, kpis#979018, plant#978993, product#978992, qty#979017, shardId#978989, version#978991, worklistShardItemId#978990L]"];
subgraph cluster115 {
isCluster="true";
id="cluster115";
label="WholeStageCodegen (7)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (7)";
116 [id="node116" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, cachedQty#978749 AS qty#978751, demandChannel#978744, demandStream#978745, cachedKpis#978750 AS kpis#978752]"];
117 [id="node117" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 0<br>spill size: 0.0 B" tooltip="SortMergeJoin [worklistShardItemId#943632L, shardId#943631], [cachedWorklistShardItemId#978748L, cachedShardId#978747], Inner"];
}
subgraph cluster118 {
isCluster="true";
id="cluster118";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
119 [id="node119" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [worklistShardItemId#943632L ASC NULLS FIRST, shardId#943631 ASC NULLS FIRST], false, 0"];
}
120 [id="node120" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(worklistShardItemId#943632L, shardId#943631, 37), ENSURE_REQUIREMENTS, [plan_id=1624120]"];
subgraph cluster121 {
isCluster="true";
id="cluster121";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
122 [id="node122" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 0 ms<br>peak memory: 0.0 B<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#943635, shardId#943631, version#943633, worklistShardItemId#943632L, product#943634], functions=[])"];
}
123 [id="node123" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(plant#943635, shardId#943631, version#943633, worklistShardItemId#943632L, product#943634, 37), ENSURE_REQUIREMENTS, [plan_id=1624116]"];
subgraph cluster124 {
isCluster="true";
id="cluster124";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
125 [id="node125" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 0 ms<br>peak memory: 0.0 B<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#943635, shardId#943631, version#943633, worklistShardItemId#943632L, product#943634], functions=[])"];
126 [id="node126" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635]"];
127 [id="node127" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 0" tooltip="BroadcastHashJoin [worklistShardItemId#943632L, shardId#943631], [cachedWorklistShardItemId#978738L, cachedShardId#978737], Inner, BuildLeft, ((qty#943638 = cachedQty#978739) OR isnull(qty#943638)), false"];
135 [id="node135" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978731 AS cachedShardId#978737, worklistShardItemId#978732L AS cachedWorklistShardItemId#978738L, qty#978733 AS cachedQty#978739]"];
136 [id="node136" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#978732L) AND isnotnull(shardId#978731))"];
137 [id="node137" labelType="html" label="<b>Scan ExistingRDD</b><br><br>number of output rows: 0" tooltip="Scan ExistingRDD[shardId#978731,worklistShardItemId#978732L,qty#978733,demandChannel#978734,demandStream#978735,kpis#978736]"];
}
128 [id="node128" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 0 ms<br>number of output rows: 0<br>data size: 0.0 B" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, bigint, false], input[0, string, false]),false), [plan_id=1624110]"];
subgraph cluster129 {
isCluster="true";
id="cluster129";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
130 [id="node130" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#943632L) AND isnotnull(shardId#943631))"];
}
131 [id="node131" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638], [isnotnull(worklistShardItemId#943632L), isnotnull(shardId#943631)]"];
132 [id="node132" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#943634, plant#943635, 37), REPARTITION_BY_NUM, [plan_id=1624002]"];
subgraph cluster133 {
isCluster="true";
id="cluster133";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
134 [id="node134" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#943631,worklistShardItemId#943632L,version#943633,product#943634,plant#943635,periodStart#943636,periodEnd#943637,qty#943638]"];
}
subgraph cluster138 {
isCluster="true";
id="cluster138";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
139 [id="node139" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [cachedWorklistShardItemId#978748L ASC NULLS FIRST, cachedShardId#978747 ASC NULLS FIRST], false, 0"];
}
140 [id="node140" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#978748L, cachedShardId#978747, 37), ENSURE_REQUIREMENTS, [plan_id=1624126]"];
subgraph cluster141 {
isCluster="true";
id="cluster141";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
142 [id="node142" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#978741 AS cachedShardId#978747, worklistShardItemId#978742L AS cachedWorklistShardItemId#978748L, qty#978743 AS cachedQty#978749, demandChannel#978744, demandStream#978745, kpis#978746 AS cachedKpis#978750]"];
143 [id="node143" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(worklistShardItemId#978742L) AND isnotnull(shardId#978741))"];
144 [id="node144" labelType="html" label="<b>Scan ExistingRDD</b><br><br>number of output rows: 0" tooltip="Scan ExistingRDD[shardId#978741,worklistShardItemId#978742L,qty#978743,demandChannel#978744,demandStream#978745,kpis#978746]"];
}
1->0;
2->1;
4->2;
5->4;
6->5;
8->6;
9->8;
10->9;
11->10;
12->11;
13->12;
15->13;
16->15;
17->16;
18->17;
19->18;
20->11;
22->20;
23->22;
24->23;
25->24;
27->25;
28->27;
29->28;
30->29;
31->30;
32->11;
34->32;
35->34;
36->35;
37->36;
39->37;
40->39;
41->40;
42->41;
43->42;
44->10;
46->44;
47->46;
49->47;
50->49;
51->50;
52->51;
53->52;
55->53;
56->55;
58->56;
59->58;
60->59;
61->60;
63->61;
65->56;
66->65;
67->66;
68->67;
70->68;
71->70;
73->71;
74->73;
76->74;
77->76;
79->77;
80->79;
81->80;
82->81;
84->82;
85->84;
86->85;
88->86;
89->81;
90->89;
91->90;
93->71;
94->93;
96->94;
97->96;
98->97;
100->67;
101->100;
102->101;
104->102;
105->104;
106->105;
108->106;
109->101;
110->109;
111->110;
113->53;
114->113;
116->114;
117->116;
119->117;
120->119;
122->120;
123->122;
125->123;
126->125;
127->126;
128->127;
130->128;
131->130;
132->131;
134->132;
135->127;
136->135;
137->136;
139->117;
140->139;
142->140;
143->142;
144->143;
}