digraph G {
subgraph cluster0 {
isCluster="true";
id="cluster0";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n25 ms (0 ms, 0 ms, 5 ms (stage 1098.0: task 10340))";
tooltip="WholeStageCodegen (2)";
1 [id="node1" 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>1 ms (0 ms, 0 ms, 1 ms (stage 1098.0: task 10336))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 1098.0: task 10331))<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[shardId#445], functions=[])"];
}
2 [id="node2" 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: 37<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(shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=118657]"];
subgraph cluster3 {
isCluster="true";
id="cluster3";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n220 ms (0 ms, 1 ms, 21 ms (stage 1097.0: task 10289))";
tooltip="WholeStageCodegen (1)";
4 [id="node4" 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>5 ms (0 ms, 0 ms, 1 ms (stage 1097.0: task 10287))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 1097.0: task 10292))<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[shardId#445], functions=[])"];
}
5 [id="node5" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#445]"];
6 [id="node6" labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 0" tooltip="SortAggregate(key=[demandChannel#27263, shardId#445, qty#27283, worklistShardItemId#446L, demandStream#27264], functions=[first(kpis#27292, false)])"];
subgraph cluster7 {
isCluster="true";
id="cluster7";
label="WholeStageCodegen (8)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (8)";
8 [id="node8" 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 [demandChannel#27263 ASC NULLS FIRST, shardId#445 ASC NULLS FIRST, qty#27283 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST, demandStream#27264 ASC NULLS FIRST], false, 0"];
}
9 [id="node9" 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(demandChannel#27263, shardId#445, qty#27283, worklistShardItemId#446L, demandStream#27264, 37), ENSURE_REQUIREMENTS, [plan_id=118557]"];
10 [id="node10" labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 0" tooltip="SortAggregate(key=[demandChannel#27263, shardId#445, knownfloatingpointnormalized(normalizenanandzero(qty#27283)) AS qty#27283, worklistShardItemId#446L, demandStream#27264], functions=[partial_first(kpis#27292, false)])"];
subgraph cluster11 {
isCluster="true";
id="cluster11";
label="WholeStageCodegen (7)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (7)";
12 [id="node12" 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 [demandChannel#27263 ASC NULLS FIRST, shardId#445 ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(qty#27283)) AS qty#27283 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST, demandStream#27264 ASC NULLS FIRST], false, 0"];
13 [id="node13" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, qty#27283, demandChannel#27263, demandStream#27264, kpis#27292]"];
14 [id="node14" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 0<br>spill size: 0.0 B" tooltip="SortMergeJoin [coalesce(product#27256, ), isnull(product#27256), coalesce(plant#27257, ), isnull(plant#27257)], [coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449)], Inner, ((qty#27283 <=> qty#452) OR isnull(qty#452))"];
}
subgraph cluster15 {
isCluster="true";
id="cluster15";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
16 [id="node16" 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(product#27256, ) ASC NULLS FIRST, isnull(product#27256) ASC NULLS FIRST, coalesce(plant#27257, ) ASC NULLS FIRST, isnull(plant#27257) ASC NULLS FIRST], false, 0"];
}
17 [id="node17" 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(product#27256, ), isnull(product#27256), coalesce(plant#27257, ), isnull(plant#27257), 37), ENSURE_REQUIREMENTS, [plan_id=118533]"];
18 [id="node18" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
19 [id="node19" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#27237.productId AS product#27256, prodPlantResults#27237.plantId AS plant#27257, null AS qty#27283, null AS demandChannel#27263, null AS demandStream#27264, transform(prodPlantResults#27237.kpiResults, lambdafunction(struct(label, lambda kpi#27293.label, dateTime, lambda kpi#27293.datetime, value, lambda kpi#27293.value), lambda kpi#27293, false)) AS kpis#27292]"];
20 [id="node20" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [prodPlantResults#27237]"];
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(prodPlantResults#27230), false, [prodPlantResults#27237]"];
23 [id="node23" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#27230]"];
24 [id="node24" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#27230, true) > 0) AND isnotnull(prodPlantResults#27230))"];
25 [id="node25" 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#27229, 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#27230]"];
}
26 [id="node26" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#27226]"];
27 [id="node27" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#27428 AS product#27243, _extract_plantId#27429 AS plant#27244, quantityKpiResults#27249.quantity AS qty#27250, null AS demandChannel#27252, null AS demandStream#27253, transform(quantityKpiResults#27249.kpiResults, lambdafunction(struct(label, lambda kpi#27293.label, dateTime, lambda kpi#27293.datetime, value, lambda kpi#27293.value), lambda kpi#27293, false)) AS kpis#27426]"];
subgraph cluster28 {
isCluster="true";
id="cluster28";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
29 [id="node29" labelType="html" label="<b>Generate</b><br><br>number of output rows: 0" tooltip="Generate explode(_extract_quantityKpiResults#27430), [_extract_productId#27428, _extract_plantId#27429], false, [quantityKpiResults#27249]"];
30 [id="node30" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#27282.productId AS _extract_productId#27428, prodPlantResults#27282.plantId AS _extract_plantId#27429, prodPlantResults#27282.quantityKpiResults AS _extract_quantityKpiResults#27430]"];
31 [id="node31" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((size(prodPlantResults#27282.quantityKpiResults, true) > 0) AND isnotnull(prodPlantResults#27282.quantityKpiResults))"];
}
32 [id="node32" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [prodPlantResults#27282], [(size(prodPlantResults#27282.quantityKpiResults, true) > 0), isnotnull(prodPlantResults#27282.quantityKpiResults)]"];
subgraph cluster33 {
isCluster="true";
id="cluster33";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
34 [id="node34" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#27230), false, [prodPlantResults#27237]"];
35 [id="node35" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#27230]"];
36 [id="node36" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#27230, true) > 0) AND isnotnull(prodPlantResults#27230))"];
37 [id="node37" 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#27229, 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#27230]"];
}
38 [id="node38" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#27226]"];
39 [id="node39" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#27431 AS product#27265, _extract_plantId#27432 AS plant#27266, null AS qty#27288, demandChannelStreamKpiResults#27271.demandChannel AS demandChannel#27273, demandChannelStreamKpiResults#27271.demandStream AS demandStream#27275, transform(demandChannelStreamKpiResults#27271.kpiResults, lambdafunction(struct(label, lambda kpi#27293.label, dateTime, lambda kpi#27293.datetime, value, lambda kpi#27293.value), lambda kpi#27293, false)) AS kpis#27427]"];
subgraph cluster40 {
isCluster="true";
id="cluster40";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
41 [id="node41" labelType="html" label="<b>Generate</b><br><br>number of output rows: 0" tooltip="Generate explode(_extract_demandChannelStreamKpiResults#27433), [_extract_productId#27431, _extract_plantId#27432], false, [demandChannelStreamKpiResults#27271]"];
42 [id="node42" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#27287.productId AS _extract_productId#27431, prodPlantResults#27287.plantId AS _extract_plantId#27432, prodPlantResults#27287.demandChannelStreamKpiResults AS _extract_demandChannelStreamKpiResults#27433]"];
43 [id="node43" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((size(prodPlantResults#27287.demandChannelStreamKpiResults, true) > 0) AND isnotnull(prodPlantResults#27287.demandChannelStreamKpiResults))"];
}
44 [id="node44" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [prodPlantResults#27287], [(size(prodPlantResults#27287.demandChannelStreamKpiResults, true) > 0), isnotnull(prodPlantResults#27287.demandChannelStreamKpiResults)]"];
subgraph cluster45 {
isCluster="true";
id="cluster45";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
46 [id="node46" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#27230), false, [prodPlantResults#27237]"];
47 [id="node47" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#27230]"];
48 [id="node48" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#27230, true) > 0) AND isnotnull(prodPlantResults#27230))"];
49 [id="node49" 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#27229, 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#27230]"];
}
50 [id="node50" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#27226]"];
subgraph cluster51 {
isCluster="true";
id="cluster51";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
52 [id="node52" 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(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"];
}
53 [id="node53" 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(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), 37), ENSURE_REQUIREMENTS, [plan_id=118547]"];
subgraph cluster54 {
isCluster="true";
id="cluster54";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
55 [id="node55" 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#449, shardId#445, qty#452, worklistShardItemId#446L, product#448], functions=[])"];
}
56 [id="node56" 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#449, shardId#445, qty#452, worklistShardItemId#446L, product#448, 37), ENSURE_REQUIREMENTS, [plan_id=118543]"];
subgraph cluster57 {
isCluster="true";
id="cluster57";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
58 [id="node58" 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#449, shardId#445, knownfloatingpointnormalized(normalizenanandzero(qty#452)) AS qty#452, worklistShardItemId#446L, product#448], functions=[])"];
59 [id="node59" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, product#448, plant#449, qty#452]"];
60 [id="node60" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter isNewlyCalculated#24690: boolean"];
}
61 [id="node61" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [isNewlyCalculated#24690, plant#449, product#448, qty#452, shardId#445, worklistShardItemId#446L], [isNewlyCalculated#24690]"];
62 [id="node62" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster63 {
isCluster="true";
id="cluster63";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
64 [id="node64" 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#24687, null AS demandStream#24688, [] AS kpis#24722, true AS isNewlyCalculated#24690]"];
65 [id="node65" 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#24679, ), isnull(shardId#24679), coalesce(worklistShardItemId#24680L, 0), isnull(worklistShardItemId#24680L), coalesce(version#24681, 0), isnull(version#24681), coalesce(product#24682, ), isnull(product#24682), coalesce(plant#24683, ), isnull(plant#24683), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#24454, 0.0))), isnull(qty#24454)], LeftAnti"];
}
subgraph cluster66 {
isCluster="true";
id="cluster66";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
67 [id="node67" 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"];
}
68 [id="node68" 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=117747]"];
69 [id="node69" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]"];
70 [id="node70" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=117521]"];
subgraph cluster71 {
isCluster="true";
id="cluster71";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
72 [id="node72" 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 cluster73 {
isCluster="true";
id="cluster73";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
74 [id="node74" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#24679, ) ASC NULLS FIRST, isnull(shardId#24679) ASC NULLS FIRST, coalesce(worklistShardItemId#24680L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#24680L) ASC NULLS FIRST, coalesce(version#24681, 0) ASC NULLS FIRST, isnull(version#24681) ASC NULLS FIRST, coalesce(product#24682, ) ASC NULLS FIRST, isnull(product#24682) ASC NULLS FIRST, coalesce(plant#24683, ) ASC NULLS FIRST, isnull(plant#24683) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#24454, 0.0))) ASC NULLS FIRST, isnull(qty#24454) ASC NULLS FIRST], false, 0"];
}
75 [id="node75" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#24679, ), isnull(shardId#24679), coalesce(worklistShardItemId#24680L, 0), isnull(worklistShardItemId#24680L), coalesce(version#24681, 0), isnull(version#24681), coalesce(product#24682, ), isnull(product#24682), coalesce(plant#24683, ), isnull(plant#24683), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#24454, 0.0))), isnull(qty#24454), 37), ENSURE_REQUIREMENTS, [plan_id=117776]"];
76 [id="node76" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
77 [id="node77" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#24679, worklistShardItemId#24680L, version#24681, product#24682, plant#24683, qty#24454]"];
subgraph cluster78 {
isCluster="true";
id="cluster78";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
79 [id="node79" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#24452 AS qty#24454, demandChannel#24447, demandStream#24448, cachedKpis#24453 AS kpis#24455]"];
80 [id="node80" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#24451L, cachedShardId#24450], Inner"];
}
subgraph cluster81 {
isCluster="true";
id="cluster81";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
82 [id="node82" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
83 [id="node83" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
84 [id="node84" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
85 [id="node85" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
86 [id="node86" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#24441L, cachedShardId#24440], Inner, ((qty#452 = cachedQty#24442) OR isnull(qty#452))"];
}
subgraph cluster87 {
isCluster="true";
id="cluster87";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
88 [id="node88" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
89 [id="node89" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=117630]"];
subgraph cluster90 {
isCluster="true";
id="cluster90";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
91 [id="node91" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
92 [id="node92" 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)]"];
93 [id="node93" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=117521]"];
subgraph cluster94 {
isCluster="true";
id="cluster94";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
95 [id="node95" 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 cluster96 {
isCluster="true";
id="cluster96";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
97 [id="node97" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#24441L ASC NULLS FIRST, cachedShardId#24440 ASC NULLS FIRST], false, 0"];
}
98 [id="node98" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#24441L, cachedShardId#24440, 37), ENSURE_REQUIREMENTS, [plan_id=117636]"];
subgraph cluster99 {
isCluster="true";
id="cluster99";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
100 [id="node100" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#24434 AS cachedShardId#24440, worklistShardItemId#24435L AS cachedWorklistShardItemId#24441L, qty#24436 AS cachedQty#24442]"];
101 [id="node101" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#24435L) AND isnotnull(shardId#24434))"];
102 [id="node102" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#24434,worklistShardItemId#24435L,qty#24436,demandChannel#24437,demandStream#24438,kpis#24439]"];
}
subgraph cluster103 {
isCluster="true";
id="cluster103";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
104 [id="node104" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#24451L ASC NULLS FIRST, cachedShardId#24450 ASC NULLS FIRST], false, 0"];
}
105 [id="node105" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#24451L, cachedShardId#24450, 37), ENSURE_REQUIREMENTS, [plan_id=117649]"];
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#24444 AS cachedShardId#24450, worklistShardItemId#24445L AS cachedWorklistShardItemId#24451L, qty#24446 AS cachedQty#24452, demandChannel#24447, demandStream#24448, kpis#24449 AS cachedKpis#24453]"];
108 [id="node108" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#24445L) AND isnotnull(shardId#24444))"];
109 [id="node109" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#24444,worklistShardItemId#24445L,qty#24446,demandChannel#24447,demandStream#24448,kpis#24449]"];
}
subgraph cluster110 {
isCluster="true";
id="cluster110";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
111 [id="node111" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#24661, worklistShardItemId#24662L, version#24663, product#24664, plant#24665, qty#24668]"];
112 [id="node112" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#24662L, shardId#24661], [cachedWorklistShardItemId#24676L, cachedShardId#24675], Inner"];
}
subgraph cluster113 {
isCluster="true";
id="cluster113";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
114 [id="node114" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#24662L ASC NULLS FIRST, shardId#24661 ASC NULLS FIRST], false, 0"];
}
115 [id="node115" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#24662L, shardId#24661, 37), ENSURE_REQUIREMENTS, [plan_id=117761]"];
subgraph cluster116 {
isCluster="true";
id="cluster116";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
117 [id="node117" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((isnull(qty#24668) AND isnotnull(worklistShardItemId#24662L)) AND isnotnull(shardId#24661))"];
}
118 [id="node118" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#24661, worklistShardItemId#24662L, version#24663, product#24664, plant#24665, qty#24668], [isnull(qty#24668), isnotnull(worklistShardItemId#24662L), isnotnull(shardId#24661)]"];
119 [id="node119" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=117521]"];
subgraph cluster120 {
isCluster="true";
id="cluster120";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
121 [id="node121" 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 cluster122 {
isCluster="true";
id="cluster122";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
123 [id="node123" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#24676L ASC NULLS FIRST, cachedShardId#24675 ASC NULLS FIRST], false, 0"];
}
124 [id="node124" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#24676L, cachedShardId#24675, 37), ENSURE_REQUIREMENTS, [plan_id=117767]"];
subgraph cluster125 {
isCluster="true";
id="cluster125";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
126 [id="node126" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#24669 AS cachedShardId#24675, worklistShardItemId#24670L AS cachedWorklistShardItemId#24676L]"];
127 [id="node127" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#24670L) AND isnotnull(shardId#24669))"];
128 [id="node128" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#24669,worklistShardItemId#24670L,qty#24671,demandChannel#24672,demandStream#24673,kpis#24674]"];
}
subgraph cluster129 {
isCluster="true";
id="cluster129";
label="WholeStageCodegen (9)";
tooltip="WholeStageCodegen (9)";
130 [id="node130" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696, qty#24720, demandChannel#24713, demandStream#24714, kpis#24721, false AS isNewlyCalculated#24691]"];
}
131 [id="node131" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [demandChannel#24713, demandStream#24714, kpis#24721, plant#24696, product#24695, qty#24720, shardId#24692, version#24694, worklistShardItemId#24693L]"];
subgraph cluster132 {
isCluster="true";
id="cluster132";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
133 [id="node133" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#24452 AS qty#24454, demandChannel#24447, demandStream#24448, cachedKpis#24453 AS kpis#24455]"];
134 [id="node134" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#24451L, cachedShardId#24450], Inner"];
}
subgraph cluster135 {
isCluster="true";
id="cluster135";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
136 [id="node136" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
137 [id="node137" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
138 [id="node138" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
139 [id="node139" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
140 [id="node140" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#24441L, cachedShardId#24440], Inner, ((qty#452 = cachedQty#24442) OR isnull(qty#452))"];
}
subgraph cluster141 {
isCluster="true";
id="cluster141";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
142 [id="node142" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
143 [id="node143" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=117630]"];
subgraph cluster144 {
isCluster="true";
id="cluster144";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
145 [id="node145" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
146 [id="node146" 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)]"];
147 [id="node147" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=117521]"];
subgraph cluster148 {
isCluster="true";
id="cluster148";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
149 [id="node149" 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 cluster150 {
isCluster="true";
id="cluster150";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
151 [id="node151" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#24441L ASC NULLS FIRST, cachedShardId#24440 ASC NULLS FIRST], false, 0"];
}
152 [id="node152" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#24441L, cachedShardId#24440, 37), ENSURE_REQUIREMENTS, [plan_id=117636]"];
subgraph cluster153 {
isCluster="true";
id="cluster153";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
154 [id="node154" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#24434 AS cachedShardId#24440, worklistShardItemId#24435L AS cachedWorklistShardItemId#24441L, qty#24436 AS cachedQty#24442]"];
155 [id="node155" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#24435L) AND isnotnull(shardId#24434))"];
156 [id="node156" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#24434,worklistShardItemId#24435L,qty#24436,demandChannel#24437,demandStream#24438,kpis#24439]"];
}
subgraph cluster157 {
isCluster="true";
id="cluster157";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
158 [id="node158" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#24451L ASC NULLS FIRST, cachedShardId#24450 ASC NULLS FIRST], false, 0"];
}
159 [id="node159" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#24451L, cachedShardId#24450, 37), ENSURE_REQUIREMENTS, [plan_id=117649]"];
subgraph cluster160 {
isCluster="true";
id="cluster160";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
161 [id="node161" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#24444 AS cachedShardId#24450, worklistShardItemId#24445L AS cachedWorklistShardItemId#24451L, qty#24446 AS cachedQty#24452, demandChannel#24447, demandStream#24448, kpis#24449 AS cachedKpis#24453]"];
162 [id="node162" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#24445L) AND isnotnull(shardId#24444))"];
163 [id="node163" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#24444,worklistShardItemId#24445L,qty#24446,demandChannel#24447,demandStream#24448,kpis#24449]"];
}
2->1;
4->2;
5->4;
6->5;
8->6;
9->8;
10->9;
12->10;
13->12;
14->13;
16->14;
17->16;
18->17;
19->18;
20->19;
22->20;
23->22;
24->23;
25->24;
26->25;
27->18;
29->27;
30->29;
31->30;
32->31;
34->32;
35->34;
36->35;
37->36;
38->37;
39->18;
41->39;
42->41;
43->42;
44->43;
46->44;
47->46;
48->47;
49->48;
50->49;
52->14;
53->52;
55->53;
56->55;
58->56;
59->58;
60->59;
61->60;
62->61;
64->62;
65->64;
67->65;
68->67;
69->68;
70->69;
72->70;
74->65;
75->74;
76->75;
77->76;
79->77;
80->79;
82->80;
83->82;
84->83;
85->84;
86->85;
88->86;
89->88;
91->89;
92->91;
93->92;
95->93;
97->86;
98->97;
100->98;
101->100;
102->101;
104->80;
105->104;
107->105;
108->107;
109->108;
111->76;
112->111;
114->112;
115->114;
117->115;
118->117;
119->118;
121->119;
123->112;
124->123;
126->124;
127->126;
128->127;
130->62;
131->130;
133->131;
134->133;
136->134;
137->136;
138->137;
139->138;
140->139;
142->140;
143->142;
145->143;
146->145;
147->146;
149->147;
151->140;
152->151;
154->152;
155->154;
156->155;
158->134;
159->158;
161->159;
162->161;
163->162;
}