digraph G {
0 [id="node0" labelType="html" label="<br><b>DeserializeToObject</b><br><br>" tooltip="DeserializeToObject createexternalrow(invoke(shardId#445.toString()), static_invoke(java.lang.Long.valueOf(worklistShardItemId#446L)), static_invoke(java.lang.Double.valueOf(qty#21607)), invoke(demandChannel#21587.toString()), invoke(demandStream#21588.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#21616, 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#22140: org.apache.spark.sql.Row"];
1 [id="node1" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616]"];
2 [id="node2" labelType="html" label="<br><b>SortAggregate</b><br><br>" tooltip="SortAggregate(key=[demandChannel#21587, shardId#445, qty#21607, worklistShardItemId#446L, demandStream#21588], functions=[first(kpis#21616, false)])"];
subgraph cluster3 {
isCluster="true";
id="cluster3";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
4 [id="node4" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [demandChannel#21587 ASC NULLS FIRST, shardId#445 ASC NULLS FIRST, qty#21607 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST, demandStream#21588 ASC NULLS FIRST], false, 0"];
}
5 [id="node5" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(demandChannel#21587, shardId#445, qty#21607, worklistShardItemId#446L, demandStream#21588, 37), ENSURE_REQUIREMENTS, [plan_id=116966]"];
6 [id="node6" labelType="html" label="<br><b>SortAggregate</b><br><br>" tooltip="SortAggregate(key=[demandChannel#21587, shardId#445, knownfloatingpointnormalized(normalizenanandzero(qty#21607)) AS qty#21607, worklistShardItemId#446L, demandStream#21588], functions=[partial_first(kpis#21616, false)])"];
subgraph cluster7 {
isCluster="true";
id="cluster7";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
8 [id="node8" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [demandChannel#21587 ASC NULLS FIRST, shardId#445 ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(qty#21607)) AS qty#21607 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST, demandStream#21588 ASC NULLS FIRST], false, 0"];
9 [id="node9" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616]"];
10 [id="node10" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(product#21580, ), isnull(product#21580), coalesce(plant#21581, ), isnull(plant#21581)], [coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449)], Inner, ((qty#21607 <=> qty#452) OR isnull(qty#452))"];
}
subgraph cluster11 {
isCluster="true";
id="cluster11";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
12 [id="node12" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(product#21580, ) ASC NULLS FIRST, isnull(product#21580) ASC NULLS FIRST, coalesce(plant#21581, ) ASC NULLS FIRST, isnull(plant#21581) ASC NULLS FIRST], false, 0"];
}
13 [id="node13" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(product#21580, ), isnull(product#21580), coalesce(plant#21581, ), isnull(plant#21581), 37), ENSURE_REQUIREMENTS, [plan_id=116942]"];
14 [id="node14" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
15 [id="node15" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21561.productId AS product#21580, prodPlantResults#21561.plantId AS plant#21581, null AS qty#21607, null AS demandChannel#21587, null AS demandStream#21588, transform(prodPlantResults#21561.kpiResults, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21616]"];
16 [id="node16" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#21561]"];
subgraph cluster17 {
isCluster="true";
id="cluster17";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
18 [id="node18" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#21554), false, [prodPlantResults#21561]"];
19 [id="node19" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21554]"];
20 [id="node20" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21554, true) > 0) AND isnotnull(prodPlantResults#21554))"];
21 [id="node21" 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#21553, 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#21554]"];
}
22 [id="node22" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#21550]"];
23 [id="node23" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#21752 AS product#21567, _extract_plantId#21753 AS plant#21568, quantityKpiResults#21573.quantity AS qty#21574, null AS demandChannel#21576, null AS demandStream#21577, transform(quantityKpiResults#21573.kpiResults, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21750]"];
subgraph cluster24 {
isCluster="true";
id="cluster24";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
25 [id="node25" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(_extract_quantityKpiResults#21754), [_extract_productId#21752, _extract_plantId#21753], false, [quantityKpiResults#21573]"];
26 [id="node26" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21606.productId AS _extract_productId#21752, prodPlantResults#21606.plantId AS _extract_plantId#21753, prodPlantResults#21606.quantityKpiResults AS _extract_quantityKpiResults#21754]"];
27 [id="node27" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21606.quantityKpiResults, true) > 0) AND isnotnull(prodPlantResults#21606.quantityKpiResults))"];
}
28 [id="node28" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#21606], [(size(prodPlantResults#21606.quantityKpiResults, true) > 0), isnotnull(prodPlantResults#21606.quantityKpiResults)]"];
subgraph cluster29 {
isCluster="true";
id="cluster29";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
30 [id="node30" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#21554), false, [prodPlantResults#21561]"];
31 [id="node31" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21554]"];
32 [id="node32" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21554, true) > 0) AND isnotnull(prodPlantResults#21554))"];
33 [id="node33" 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#21553, 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#21554]"];
}
34 [id="node34" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#21550]"];
35 [id="node35" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#21755 AS product#21589, _extract_plantId#21756 AS plant#21590, null AS qty#21612, demandChannelStreamKpiResults#21595.demandChannel AS demandChannel#21597, demandChannelStreamKpiResults#21595.demandStream AS demandStream#21599, transform(demandChannelStreamKpiResults#21595.kpiResults, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21751]"];
subgraph cluster36 {
isCluster="true";
id="cluster36";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
37 [id="node37" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(_extract_demandChannelStreamKpiResults#21757), [_extract_productId#21755, _extract_plantId#21756], false, [demandChannelStreamKpiResults#21595]"];
38 [id="node38" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21611.productId AS _extract_productId#21755, prodPlantResults#21611.plantId AS _extract_plantId#21756, prodPlantResults#21611.demandChannelStreamKpiResults AS _extract_demandChannelStreamKpiResults#21757]"];
39 [id="node39" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21611.demandChannelStreamKpiResults, true) > 0) AND isnotnull(prodPlantResults#21611.demandChannelStreamKpiResults))"];
}
40 [id="node40" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#21611], [(size(prodPlantResults#21611.demandChannelStreamKpiResults, true) > 0), isnotnull(prodPlantResults#21611.demandChannelStreamKpiResults)]"];
subgraph cluster41 {
isCluster="true";
id="cluster41";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
42 [id="node42" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#21554), false, [prodPlantResults#21561]"];
43 [id="node43" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21554]"];
44 [id="node44" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21554, true) > 0) AND isnotnull(prodPlantResults#21554))"];
45 [id="node45" 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#21553, 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#21554]"];
}
46 [id="node46" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#21550]"];
subgraph cluster47 {
isCluster="true";
id="cluster47";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
48 [id="node48" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(product#448, ) ASC NULLS FIRST, isnull(product#448) ASC NULLS FIRST, coalesce(plant#449, ) ASC NULLS FIRST, isnull(plant#449) ASC NULLS FIRST], false, 0"];
}
49 [id="node49" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), 37), ENSURE_REQUIREMENTS, [plan_id=116956]"];
subgraph cluster50 {
isCluster="true";
id="cluster50";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
51 [id="node51" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, qty#452, worklistShardItemId#446L, product#448], functions=[])"];
}
52 [id="node52" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(plant#449, shardId#445, qty#452, worklistShardItemId#446L, product#448, 37), ENSURE_REQUIREMENTS, [plan_id=116952]"];
subgraph cluster53 {
isCluster="true";
id="cluster53";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
54 [id="node54" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, knownfloatingpointnormalized(normalizenanandzero(qty#452)) AS qty#452, worklistShardItemId#446L, product#448], functions=[])"];
55 [id="node55" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, product#448, plant#449, qty#452]"];
56 [id="node56" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter isNewlyCalculated#19014: boolean"];
}
57 [id="node57" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [isNewlyCalculated#19014, plant#449, product#448, qty#452, shardId#445, worklistShardItemId#446L], [isNewlyCalculated#19014]"];
58 [id="node58" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster59 {
isCluster="true";
id="cluster59";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
60 [id="node60" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, null AS demandChannel#19011, null AS demandStream#19012, [] AS kpis#19046, true AS isNewlyCalculated#19014]"];
61 [id="node61" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452)], [coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778)], LeftAnti"];
}
subgraph cluster62 {
isCluster="true";
id="cluster62";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
63 [id="node63" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#445, ) ASC NULLS FIRST, isnull(shardId#445) ASC NULLS FIRST, coalesce(worklistShardItemId#446L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#446L) ASC NULLS FIRST, coalesce(version#447, 0) ASC NULLS FIRST, isnull(version#447) ASC NULLS FIRST, coalesce(product#448, ) ASC NULLS FIRST, isnull(product#448) ASC NULLS FIRST, coalesce(plant#449, ) ASC NULLS FIRST, isnull(plant#449) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))) ASC NULLS FIRST, isnull(qty#452) ASC NULLS FIRST], false, 0"];
}
64 [id="node64" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452), 37), ENSURE_REQUIREMENTS, [plan_id=116156]"];
65 [id="node65" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]"];
66 [id="node66" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster67 {
isCluster="true";
id="cluster67";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
68 [id="node68" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#445,worklistShardItemId#446L,version#447,product#448,plant#449,periodStart#450,periodEnd#451,qty#452]"];
}
subgraph cluster69 {
isCluster="true";
id="cluster69";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
70 [id="node70" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#19003, ) ASC NULLS FIRST, isnull(shardId#19003) ASC NULLS FIRST, coalesce(worklistShardItemId#19004L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#19004L) ASC NULLS FIRST, coalesce(version#19005, 0) ASC NULLS FIRST, isnull(version#19005) ASC NULLS FIRST, coalesce(product#19006, ) ASC NULLS FIRST, isnull(product#19006) ASC NULLS FIRST, coalesce(plant#19007, ) ASC NULLS FIRST, isnull(plant#19007) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))) ASC NULLS FIRST, isnull(qty#18778) ASC NULLS FIRST], false, 0"];
}
71 [id="node71" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778), 37), ENSURE_REQUIREMENTS, [plan_id=116185]"];
72 [id="node72" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
73 [id="node73" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, qty#18778]"];
subgraph cluster74 {
isCluster="true";
id="cluster74";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
75 [id="node75" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
76 [id="node76" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster77 {
isCluster="true";
id="cluster77";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
78 [id="node78" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
79 [id="node79" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
80 [id="node80" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
81 [id="node81" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
82 [id="node82" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster83 {
isCluster="true";
id="cluster83";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
84 [id="node84" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
85 [id="node85" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster86 {
isCluster="true";
id="cluster86";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
87 [id="node87" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
88 [id="node88" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452], [isnotnull(worklistShardItemId#446L), isnotnull(shardId#445)]"];
89 [id="node89" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster90 {
isCluster="true";
id="cluster90";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
91 [id="node91" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#445,worklistShardItemId#446L,version#447,product#448,plant#449,periodStart#450,periodEnd#451,qty#452]"];
}
subgraph cluster92 {
isCluster="true";
id="cluster92";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
93 [id="node93" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
94 [id="node94" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster95 {
isCluster="true";
id="cluster95";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
96 [id="node96" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
97 [id="node97" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
98 [id="node98" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster99 {
isCluster="true";
id="cluster99";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
100 [id="node100" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
101 [id="node101" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster102 {
isCluster="true";
id="cluster102";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
103 [id="node103" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
104 [id="node104" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
105 [id="node105" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
subgraph cluster106 {
isCluster="true";
id="cluster106";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
107 [id="node107" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]"];
108 [id="node108" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#18986L, shardId#18985], [cachedWorklistShardItemId#19000L, cachedShardId#18999], Inner"];
}
subgraph cluster109 {
isCluster="true";
id="cluster109";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
110 [id="node110" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#18986L ASC NULLS FIRST, shardId#18985 ASC NULLS FIRST], false, 0"];
}
111 [id="node111" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#18986L, shardId#18985, 37), ENSURE_REQUIREMENTS, [plan_id=116170]"];
subgraph cluster112 {
isCluster="true";
id="cluster112";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
113 [id="node113" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((isnull(qty#18992) AND isnotnull(worklistShardItemId#18986L)) AND isnotnull(shardId#18985))"];
}
114 [id="node114" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992], [isnull(qty#18992), isnotnull(worklistShardItemId#18986L), isnotnull(shardId#18985)]"];
115 [id="node115" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster116 {
isCluster="true";
id="cluster116";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
117 [id="node117" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#445,worklistShardItemId#446L,version#447,product#448,plant#449,periodStart#450,periodEnd#451,qty#452]"];
}
subgraph cluster118 {
isCluster="true";
id="cluster118";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
119 [id="node119" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#19000L ASC NULLS FIRST, cachedShardId#18999 ASC NULLS FIRST], false, 0"];
}
120 [id="node120" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#19000L, cachedShardId#18999, 37), ENSURE_REQUIREMENTS, [plan_id=116176]"];
subgraph cluster121 {
isCluster="true";
id="cluster121";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
122 [id="node122" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18993 AS cachedShardId#18999, worklistShardItemId#18994L AS cachedWorklistShardItemId#19000L]"];
123 [id="node123" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18994L) AND isnotnull(shardId#18993))"];
124 [id="node124" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18993,worklistShardItemId#18994L,qty#18995,demandChannel#18996,demandStream#18997,kpis#18998]"];
}
subgraph cluster125 {
isCluster="true";
id="cluster125";
label="WholeStageCodegen (9)";
tooltip="WholeStageCodegen (9)";
126 [id="node126" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19044, demandChannel#19037, demandStream#19038, kpis#19045, false AS isNewlyCalculated#19015]"];
}
127 [id="node127" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [demandChannel#19037, demandStream#19038, kpis#19045, plant#19020, product#19019, qty#19044, shardId#19016, version#19018, worklistShardItemId#19017L]"];
subgraph cluster128 {
isCluster="true";
id="cluster128";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
129 [id="node129" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
130 [id="node130" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster131 {
isCluster="true";
id="cluster131";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
132 [id="node132" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
133 [id="node133" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
134 [id="node134" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
135 [id="node135" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
136 [id="node136" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster137 {
isCluster="true";
id="cluster137";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
138 [id="node138" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
139 [id="node139" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster140 {
isCluster="true";
id="cluster140";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
141 [id="node141" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
142 [id="node142" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452], [isnotnull(worklistShardItemId#446L), isnotnull(shardId#445)]"];
143 [id="node143" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster144 {
isCluster="true";
id="cluster144";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
145 [id="node145" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#445,worklistShardItemId#446L,version#447,product#448,plant#449,periodStart#450,periodEnd#451,qty#452]"];
}
subgraph cluster146 {
isCluster="true";
id="cluster146";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
147 [id="node147" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
148 [id="node148" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster149 {
isCluster="true";
id="cluster149";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
150 [id="node150" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
151 [id="node151" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
152 [id="node152" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster153 {
isCluster="true";
id="cluster153";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
154 [id="node154" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
155 [id="node155" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster156 {
isCluster="true";
id="cluster156";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
157 [id="node157" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
158 [id="node158" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
159 [id="node159" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
1->0;
2->1;
4->2;
5->4;
6->5;
8->6;
9->8;
10->9;
12->10;
13->12;
14->13;
15->14;
16->15;
18->16;
19->18;
20->19;
21->20;
22->21;
23->14;
25->23;
26->25;
27->26;
28->27;
30->28;
31->30;
32->31;
33->32;
34->33;
35->14;
37->35;
38->37;
39->38;
40->39;
42->40;
43->42;
44->43;
45->44;
46->45;
48->10;
49->48;
51->49;
52->51;
54->52;
55->54;
56->55;
57->56;
58->57;
60->58;
61->60;
63->61;
64->63;
65->64;
66->65;
68->66;
70->61;
71->70;
72->71;
73->72;
75->73;
76->75;
78->76;
79->78;
80->79;
81->80;
82->81;
84->82;
85->84;
87->85;
88->87;
89->88;
91->89;
93->82;
94->93;
96->94;
97->96;
98->97;
100->76;
101->100;
103->101;
104->103;
105->104;
107->72;
108->107;
110->108;
111->110;
113->111;
114->113;
115->114;
117->115;
119->108;
120->119;
122->120;
123->122;
124->123;
126->58;
127->126;
129->127;
130->129;
132->130;
133->132;
134->133;
135->134;
136->135;
138->136;
139->138;
141->139;
142->141;
143->142;
145->143;
147->136;
148->147;
150->148;
151->150;
152->151;
154->130;
155->154;
157->155;
158->157;
159->158;
}