digraph G {
subgraph cluster0 {
isCluster="true";
id="cluster0";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n102 ms (0 ms, 0 ms, 15 ms (stage 107207.0: task 357618))";
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>13 ms (0 ms, 0 ms, 4 ms (stage 107207.0: task 357618))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 107207.0: task 357617))<br>number of output rows: 1<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[shardId#1011815], functions=[])"];
}
2 [id="node2" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 25<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 25<br>local bytes read: 1748.0 B<br>merged fetch fallback count: 0<br>local blocks read: 19<br>remote merged chunks fetched: 0<br>remote blocks read: 6<br>data size total (min, med, max (stageId: taskId))<br>800.0 B (32.0 B, 32.0 B, 32.0 B (stage 107206.0: task 357577))<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>12 ms (0 ms, 0 ms, 0 ms (stage 107206.0: task 357578))<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: 552.0 B<br>number of partitions: 37<br>remote reqs duration: 4 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>2.2 KiB (92.0 B, 92.0 B, 92.0 B (stage 107206.0: task 357577))" tooltip="Exchange hashpartitioning(shardId#1011815, 37), ENSURE_REQUIREMENTS, [plan_id=1682608]"];
subgraph cluster3 {
isCluster="true";
id="cluster3";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n507 ms (0 ms, 1 ms, 57 ms (stage 107206.0: task 357584))";
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>36 ms (0 ms, 0 ms, 6 ms (stage 107206.0: task 357579))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 107206.0: task 357577))<br>number of output rows: 25<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[shardId#1011815], functions=[])"];
}
5 [id="node5" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 37" tooltip="InMemoryTableScan [shardId#1011815]"];
6 [id="node6" labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 0" tooltip="SortAggregate(key=[demandChannel#1042073, shardId#1011815, qty#1042093, worklistShardItemId#1011816L, demandStream#1042074], functions=[first(kpis#1042102, false)])"];
subgraph cluster7 {
isCluster="true";
id="cluster7";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
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#1042073 ASC NULLS FIRST, shardId#1011815 ASC NULLS FIRST, qty#1042093 ASC NULLS FIRST, worklistShardItemId#1011816L ASC NULLS FIRST, demandStream#1042074 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#1042073, shardId#1011815, qty#1042093, worklistShardItemId#1011816L, demandStream#1042074, 37), ENSURE_REQUIREMENTS, [plan_id=1682519]"];
10 [id="node10" labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 0" tooltip="SortAggregate(key=[demandChannel#1042073, shardId#1011815, knownfloatingpointnormalized(normalizenanandzero(qty#1042093)) AS qty#1042093, worklistShardItemId#1011816L, demandStream#1042074], functions=[partial_first(kpis#1042102, false)])"];
subgraph cluster11 {
isCluster="true";
id="cluster11";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
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#1042073 ASC NULLS FIRST, shardId#1011815 ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(qty#1042093)) AS qty#1042093 ASC NULLS FIRST, worklistShardItemId#1011816L ASC NULLS FIRST, demandStream#1042074 ASC NULLS FIRST], false, 0"];
13 [id="node13" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, qty#1042093, demandChannel#1042073, demandStream#1042074, kpis#1042102]"];
14 [id="node14" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 0" tooltip="BroadcastHashJoin [coalesce(product#1042066, ), isnull(product#1042066), coalesce(plant#1042067, ), isnull(plant#1042067)], [coalesce(product#1011818, ), isnull(product#1011818), coalesce(plant#1011819, ), isnull(plant#1011819)], Inner, BuildRight, ((qty#1042093 <=> qty#1011822) OR isnull(qty#1011822)), false"];
}
15 [id="node15" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
16 [id="node16" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#1042047.productId AS product#1042066, prodPlantResults#1042047.plantId AS plant#1042067, null AS qty#1042093, null AS demandChannel#1042073, null AS demandStream#1042074, transform(prodPlantResults#1042047.kpiResults, lambdafunction(struct(label, lambda kpi#1042103.label, dateTime, lambda kpi#1042103.datetime, value, lambda kpi#1042103.value), lambda kpi#1042103, false)) AS kpis#1042102]"];
17 [id="node17" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [prodPlantResults#1042047]"];
subgraph cluster18 {
isCluster="true";
id="cluster18";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
19 [id="node19" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#1042040), false, [prodPlantResults#1042047]"];
20 [id="node20" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#1042040]"];
21 [id="node21" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#1042040, true) > 0) AND isnotnull(prodPlantResults#1042040))"];
22 [id="node22" 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#1042039, 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#1042040]"];
}
23 [id="node23" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#1042036]"];
24 [id="node24" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#1042238 AS product#1042053, _extract_plantId#1042239 AS plant#1042054, quantityKpiResults#1042059.quantity AS qty#1042060, null AS demandChannel#1042062, null AS demandStream#1042063, transform(quantityKpiResults#1042059.kpiResults, lambdafunction(struct(label, lambda kpi#1042103.label, dateTime, lambda kpi#1042103.datetime, value, lambda kpi#1042103.value), lambda kpi#1042103, false)) AS kpis#1042236]"];
subgraph cluster25 {
isCluster="true";
id="cluster25";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
26 [id="node26" labelType="html" label="<b>Generate</b><br><br>number of output rows: 0" tooltip="Generate explode(_extract_quantityKpiResults#1042240), [_extract_productId#1042238, _extract_plantId#1042239], false, [quantityKpiResults#1042059]"];
27 [id="node27" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#1042092.productId AS _extract_productId#1042238, prodPlantResults#1042092.plantId AS _extract_plantId#1042239, prodPlantResults#1042092.quantityKpiResults AS _extract_quantityKpiResults#1042240]"];
28 [id="node28" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((size(prodPlantResults#1042092.quantityKpiResults, true) > 0) AND isnotnull(prodPlantResults#1042092.quantityKpiResults))"];
}
29 [id="node29" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [prodPlantResults#1042092], [(size(prodPlantResults#1042092.quantityKpiResults, true) > 0), isnotnull(prodPlantResults#1042092.quantityKpiResults)]"];
subgraph cluster30 {
isCluster="true";
id="cluster30";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
31 [id="node31" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#1042040), false, [prodPlantResults#1042047]"];
32 [id="node32" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#1042040]"];
33 [id="node33" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#1042040, true) > 0) AND isnotnull(prodPlantResults#1042040))"];
34 [id="node34" 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#1042039, 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#1042040]"];
}
35 [id="node35" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#1042036]"];
36 [id="node36" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#1042241 AS product#1042075, _extract_plantId#1042242 AS plant#1042076, null AS qty#1042098, demandChannelStreamKpiResults#1042081.demandChannel AS demandChannel#1042083, demandChannelStreamKpiResults#1042081.demandStream AS demandStream#1042085, transform(demandChannelStreamKpiResults#1042081.kpiResults, lambdafunction(struct(label, lambda kpi#1042103.label, dateTime, lambda kpi#1042103.datetime, value, lambda kpi#1042103.value), lambda kpi#1042103, false)) AS kpis#1042237]"];
subgraph cluster37 {
isCluster="true";
id="cluster37";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
38 [id="node38" labelType="html" label="<b>Generate</b><br><br>number of output rows: 0" tooltip="Generate explode(_extract_demandChannelStreamKpiResults#1042243), [_extract_productId#1042241, _extract_plantId#1042242], false, [demandChannelStreamKpiResults#1042081]"];
39 [id="node39" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#1042097.productId AS _extract_productId#1042241, prodPlantResults#1042097.plantId AS _extract_plantId#1042242, prodPlantResults#1042097.demandChannelStreamKpiResults AS _extract_demandChannelStreamKpiResults#1042243]"];
40 [id="node40" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((size(prodPlantResults#1042097.demandChannelStreamKpiResults, true) > 0) AND isnotnull(prodPlantResults#1042097.demandChannelStreamKpiResults))"];
}
41 [id="node41" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [prodPlantResults#1042097], [(size(prodPlantResults#1042097.demandChannelStreamKpiResults, true) > 0), isnotnull(prodPlantResults#1042097.demandChannelStreamKpiResults)]"];
subgraph cluster42 {
isCluster="true";
id="cluster42";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
43 [id="node43" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#1042040), false, [prodPlantResults#1042047]"];
44 [id="node44" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#1042040]"];
45 [id="node45" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#1042040, true) > 0) AND isnotnull(prodPlantResults#1042040))"];
46 [id="node46" 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#1042039, 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#1042040]"];
}
47 [id="node47" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#1042036]"];
48 [id="node48" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 0 ms<br>number of output rows: 0<br>data size: 0.0 B" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1682512]"];
subgraph cluster49 {
isCluster="true";
id="cluster49";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
50 [id="node50" 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#1011819, shardId#1011815, qty#1011822, worklistShardItemId#1011816L, product#1011818], functions=[])"];
}
51 [id="node51" 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#1011819, shardId#1011815, qty#1011822, worklistShardItemId#1011816L, product#1011818, 37), ENSURE_REQUIREMENTS, [plan_id=1682508]"];
subgraph cluster52 {
isCluster="true";
id="cluster52";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
53 [id="node53" 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#1011819, shardId#1011815, knownfloatingpointnormalized(normalizenanandzero(qty#1011822)) AS qty#1011822, worklistShardItemId#1011816L, product#1011818], functions=[])"];
54 [id="node54" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, product#1011818, plant#1011819, qty#1011822]"];
55 [id="node55" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter isNewlyCalculated#1039540: boolean"];
}
56 [id="node56" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [isNewlyCalculated#1039540, plant#1011819, product#1011818, qty#1011822, shardId#1011815, worklistShardItemId#1011816L], [isNewlyCalculated#1039540]"];
57 [id="node57" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster58 {
isCluster="true";
id="cluster58";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
59 [id="node59" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, null AS demandChannel#1039537, null AS demandStream#1039538, [] AS kpis#1039572, true AS isNewlyCalculated#1039540]"];
60 [id="node60" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(shardId#1011815, ), isnull(shardId#1011815), coalesce(worklistShardItemId#1011816L, 0), isnull(worklistShardItemId#1011816L), coalesce(version#1011817, 0), isnull(version#1011817), coalesce(product#1011818, ), isnull(product#1011818), coalesce(plant#1011819, ), isnull(plant#1011819), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#1011822, 0.0))), isnull(qty#1011822)], [coalesce(shardId#1039529, ), isnull(shardId#1039529), coalesce(worklistShardItemId#1039530L, 0), isnull(worklistShardItemId#1039530L), coalesce(version#1039531, 0), isnull(version#1039531), coalesce(product#1039532, ), isnull(product#1039532), coalesce(plant#1039533, ), isnull(plant#1039533), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#1039304, 0.0))), isnull(qty#1039304)], LeftAnti"];
}
subgraph cluster61 {
isCluster="true";
id="cluster61";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
62 [id="node62" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#1011815, ) ASC NULLS FIRST, isnull(shardId#1011815) ASC NULLS FIRST, coalesce(worklistShardItemId#1011816L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#1011816L) ASC NULLS FIRST, coalesce(version#1011817, 0) ASC NULLS FIRST, isnull(version#1011817) ASC NULLS FIRST, coalesce(product#1011818, ) ASC NULLS FIRST, isnull(product#1011818) ASC NULLS FIRST, coalesce(plant#1011819, ) ASC NULLS FIRST, isnull(plant#1011819) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#1011822, 0.0))) ASC NULLS FIRST, isnull(qty#1011822) ASC NULLS FIRST], false, 0"];
}
63 [id="node63" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#1011815, ), isnull(shardId#1011815), coalesce(worklistShardItemId#1011816L, 0), isnull(worklistShardItemId#1011816L), coalesce(version#1011817, 0), isnull(version#1011817), coalesce(product#1011818, ), isnull(product#1011818), coalesce(plant#1011819, ), isnull(plant#1011819), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#1011822, 0.0))), isnull(qty#1011822), 37), ENSURE_REQUIREMENTS, [plan_id=1681701]"];
64 [id="node64" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822]"];
65 [id="node65" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#1011818, plant#1011819, 37), REPARTITION_BY_NUM, [plan_id=1681471]"];
subgraph cluster66 {
isCluster="true";
id="cluster66";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
67 [id="node67" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1011815,worklistShardItemId#1011816L,version#1011817,product#1011818,plant#1011819,periodStart#1011820,periodEnd#1011821,qty#1011822]"];
}
subgraph cluster68 {
isCluster="true";
id="cluster68";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
69 [id="node69" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#1039529, ) ASC NULLS FIRST, isnull(shardId#1039529) ASC NULLS FIRST, coalesce(worklistShardItemId#1039530L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#1039530L) ASC NULLS FIRST, coalesce(version#1039531, 0) ASC NULLS FIRST, isnull(version#1039531) ASC NULLS FIRST, coalesce(product#1039532, ) ASC NULLS FIRST, isnull(product#1039532) ASC NULLS FIRST, coalesce(plant#1039533, ) ASC NULLS FIRST, isnull(plant#1039533) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#1039304, 0.0))) ASC NULLS FIRST, isnull(qty#1039304) ASC NULLS FIRST], false, 0"];
}
70 [id="node70" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#1039529, ), isnull(shardId#1039529), coalesce(worklistShardItemId#1039530L, 0), isnull(worklistShardItemId#1039530L), coalesce(version#1039531, 0), isnull(version#1039531), coalesce(product#1039532, ), isnull(product#1039532), coalesce(plant#1039533, ), isnull(plant#1039533), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#1039304, 0.0))), isnull(qty#1039304), 37), ENSURE_REQUIREMENTS, [plan_id=1681721]"];
71 [id="node71" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
72 [id="node72" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#1039529, worklistShardItemId#1039530L, version#1039531, product#1039532, plant#1039533, qty#1039304]"];
subgraph cluster73 {
isCluster="true";
id="cluster73";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
74 [id="node74" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, cachedQty#1039302 AS qty#1039304, demandChannel#1039297, demandStream#1039298, cachedKpis#1039303 AS kpis#1039305]"];
75 [id="node75" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#1011816L, shardId#1011815], [cachedWorklistShardItemId#1039301L, cachedShardId#1039300], Inner"];
}
subgraph cluster76 {
isCluster="true";
id="cluster76";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
77 [id="node77" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#1011816L ASC NULLS FIRST, shardId#1011815 ASC NULLS FIRST], false, 0"];
}
78 [id="node78" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#1011816L, shardId#1011815, 37), ENSURE_REQUIREMENTS, [plan_id=1681589]"];
subgraph cluster79 {
isCluster="true";
id="cluster79";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
80 [id="node80" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#1011819, shardId#1011815, version#1011817, worklistShardItemId#1011816L, product#1011818], functions=[])"];
}
81 [id="node81" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(plant#1011819, shardId#1011815, version#1011817, worklistShardItemId#1011816L, product#1011818, 37), ENSURE_REQUIREMENTS, [plan_id=1681585]"];
subgraph cluster82 {
isCluster="true";
id="cluster82";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
83 [id="node83" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#1011819, shardId#1011815, version#1011817, worklistShardItemId#1011816L, product#1011818], functions=[])"];
84 [id="node84" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819]"];
85 [id="node85" labelType="html" label="<br><b>BroadcastHashJoin</b><br><br>" tooltip="BroadcastHashJoin [worklistShardItemId#1011816L, shardId#1011815], [cachedWorklistShardItemId#1039291L, cachedShardId#1039290], Inner, BuildLeft, ((qty#1011822 = cachedQty#1039292) OR isnull(qty#1011822)), false"];
93 [id="node93" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039284 AS cachedShardId#1039290, worklistShardItemId#1039285L AS cachedWorklistShardItemId#1039291L, qty#1039286 AS cachedQty#1039292]"];
94 [id="node94" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1039285L) AND isnotnull(shardId#1039284))"];
95 [id="node95" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1039284,worklistShardItemId#1039285L,qty#1039286,demandChannel#1039287,demandStream#1039288,kpis#1039289]"];
}
86 [id="node86" labelType="html" label="<br><b>BroadcastExchange</b><br><br>" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, bigint, false], input[0, string, false]),false), [plan_id=1681579]"];
subgraph cluster87 {
isCluster="true";
id="cluster87";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
88 [id="node88" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1011816L) AND isnotnull(shardId#1011815))"];
}
89 [id="node89" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822], [isnotnull(worklistShardItemId#1011816L), isnotnull(shardId#1011815)]"];
90 [id="node90" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#1011818, plant#1011819, 37), REPARTITION_BY_NUM, [plan_id=1681471]"];
subgraph cluster91 {
isCluster="true";
id="cluster91";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
92 [id="node92" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1011815,worklistShardItemId#1011816L,version#1011817,product#1011818,plant#1011819,periodStart#1011820,periodEnd#1011821,qty#1011822]"];
}
subgraph cluster96 {
isCluster="true";
id="cluster96";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
97 [id="node97" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#1039301L ASC NULLS FIRST, cachedShardId#1039300 ASC NULLS FIRST], false, 0"];
}
98 [id="node98" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#1039301L, cachedShardId#1039300, 37), ENSURE_REQUIREMENTS, [plan_id=1681595]"];
subgraph cluster99 {
isCluster="true";
id="cluster99";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
100 [id="node100" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039294 AS cachedShardId#1039300, worklistShardItemId#1039295L AS cachedWorklistShardItemId#1039301L, qty#1039296 AS cachedQty#1039302, demandChannel#1039297, demandStream#1039298, kpis#1039299 AS cachedKpis#1039303]"];
101 [id="node101" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1039295L) AND isnotnull(shardId#1039294))"];
102 [id="node102" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1039294,worklistShardItemId#1039295L,qty#1039296,demandChannel#1039297,demandStream#1039298,kpis#1039299]"];
}
subgraph cluster103 {
isCluster="true";
id="cluster103";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
104 [id="node104" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039511, worklistShardItemId#1039512L, version#1039513, product#1039514, plant#1039515, qty#1039518]"];
105 [id="node105" labelType="html" label="<br><b>BroadcastHashJoin</b><br><br>" tooltip="BroadcastHashJoin [worklistShardItemId#1039512L, shardId#1039511], [cachedWorklistShardItemId#1039526L, cachedShardId#1039525], Inner, BuildLeft, false"];
113 [id="node113" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039519 AS cachedShardId#1039525, worklistShardItemId#1039520L AS cachedWorklistShardItemId#1039526L]"];
114 [id="node114" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1039520L) AND isnotnull(shardId#1039519))"];
115 [id="node115" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1039519,worklistShardItemId#1039520L,qty#1039521,demandChannel#1039522,demandStream#1039523,kpis#1039524]"];
}
106 [id="node106" labelType="html" label="<br><b>BroadcastExchange</b><br><br>" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, bigint, false], input[0, string, false]),false), [plan_id=1681715]"];
subgraph cluster107 {
isCluster="true";
id="cluster107";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
108 [id="node108" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((isnull(qty#1039518) AND isnotnull(worklistShardItemId#1039512L)) AND isnotnull(shardId#1039511))"];
}
109 [id="node109" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#1039511, worklistShardItemId#1039512L, version#1039513, product#1039514, plant#1039515, qty#1039518], [isnull(qty#1039518), isnotnull(worklistShardItemId#1039512L), isnotnull(shardId#1039511)]"];
110 [id="node110" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#1011818, plant#1011819, 37), REPARTITION_BY_NUM, [plan_id=1681471]"];
subgraph cluster111 {
isCluster="true";
id="cluster111";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
112 [id="node112" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1011815,worklistShardItemId#1011816L,version#1011817,product#1011818,plant#1011819,periodStart#1011820,periodEnd#1011821,qty#1011822]"];
}
subgraph cluster116 {
isCluster="true";
id="cluster116";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
117 [id="node117" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039542, worklistShardItemId#1039543L, version#1039544, product#1039545, plant#1039546, qty#1039570, demandChannel#1039563, demandStream#1039564, kpis#1039571, false AS isNewlyCalculated#1039541]"];
}
118 [id="node118" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [demandChannel#1039563, demandStream#1039564, kpis#1039571, plant#1039546, product#1039545, qty#1039570, shardId#1039542, version#1039544, worklistShardItemId#1039543L]"];
subgraph cluster119 {
isCluster="true";
id="cluster119";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
120 [id="node120" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, cachedQty#1039302 AS qty#1039304, demandChannel#1039297, demandStream#1039298, cachedKpis#1039303 AS kpis#1039305]"];
121 [id="node121" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#1011816L, shardId#1011815], [cachedWorklistShardItemId#1039301L, cachedShardId#1039300], Inner"];
}
subgraph cluster122 {
isCluster="true";
id="cluster122";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
123 [id="node123" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#1011816L ASC NULLS FIRST, shardId#1011815 ASC NULLS FIRST], false, 0"];
}
124 [id="node124" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#1011816L, shardId#1011815, 37), ENSURE_REQUIREMENTS, [plan_id=1681589]"];
subgraph cluster125 {
isCluster="true";
id="cluster125";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
126 [id="node126" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#1011819, shardId#1011815, version#1011817, worklistShardItemId#1011816L, product#1011818], functions=[])"];
}
127 [id="node127" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(plant#1011819, shardId#1011815, version#1011817, worklistShardItemId#1011816L, product#1011818, 37), ENSURE_REQUIREMENTS, [plan_id=1681585]"];
subgraph cluster128 {
isCluster="true";
id="cluster128";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
129 [id="node129" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#1011819, shardId#1011815, version#1011817, worklistShardItemId#1011816L, product#1011818], functions=[])"];
130 [id="node130" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819]"];
131 [id="node131" labelType="html" label="<br><b>BroadcastHashJoin</b><br><br>" tooltip="BroadcastHashJoin [worklistShardItemId#1011816L, shardId#1011815], [cachedWorklistShardItemId#1039291L, cachedShardId#1039290], Inner, BuildLeft, ((qty#1011822 = cachedQty#1039292) OR isnull(qty#1011822)), false"];
139 [id="node139" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039284 AS cachedShardId#1039290, worklistShardItemId#1039285L AS cachedWorklistShardItemId#1039291L, qty#1039286 AS cachedQty#1039292]"];
140 [id="node140" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1039285L) AND isnotnull(shardId#1039284))"];
141 [id="node141" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1039284,worklistShardItemId#1039285L,qty#1039286,demandChannel#1039287,demandStream#1039288,kpis#1039289]"];
}
132 [id="node132" labelType="html" label="<br><b>BroadcastExchange</b><br><br>" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, bigint, false], input[0, string, false]),false), [plan_id=1681579]"];
subgraph cluster133 {
isCluster="true";
id="cluster133";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
134 [id="node134" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1011816L) AND isnotnull(shardId#1011815))"];
}
135 [id="node135" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822], [isnotnull(worklistShardItemId#1011816L), isnotnull(shardId#1011815)]"];
136 [id="node136" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#1011818, plant#1011819, 37), REPARTITION_BY_NUM, [plan_id=1681471]"];
subgraph cluster137 {
isCluster="true";
id="cluster137";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
138 [id="node138" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1011815,worklistShardItemId#1011816L,version#1011817,product#1011818,plant#1011819,periodStart#1011820,periodEnd#1011821,qty#1011822]"];
}
subgraph cluster142 {
isCluster="true";
id="cluster142";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
143 [id="node143" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#1039301L ASC NULLS FIRST, cachedShardId#1039300 ASC NULLS FIRST], false, 0"];
}
144 [id="node144" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#1039301L, cachedShardId#1039300, 37), ENSURE_REQUIREMENTS, [plan_id=1681595]"];
subgraph cluster145 {
isCluster="true";
id="cluster145";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
146 [id="node146" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#1039294 AS cachedShardId#1039300, worklistShardItemId#1039295L AS cachedWorklistShardItemId#1039301L, qty#1039296 AS cachedQty#1039302, demandChannel#1039297, demandStream#1039298, kpis#1039299 AS cachedKpis#1039303]"];
147 [id="node147" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#1039295L) AND isnotnull(shardId#1039294))"];
148 [id="node148" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#1039294,worklistShardItemId#1039295L,qty#1039296,demandChannel#1039297,demandStream#1039298,kpis#1039299]"];
}
2->1;
4->2;
5->4;
6->5;
8->6;
9->8;
10->9;
12->10;
13->12;
14->13;
15->14;
16->15;
17->16;
19->17;
20->19;
21->20;
22->21;
23->22;
24->15;
26->24;
27->26;
28->27;
29->28;
31->29;
32->31;
33->32;
34->33;
35->34;
36->15;
38->36;
39->38;
40->39;
41->40;
43->41;
44->43;
45->44;
46->45;
47->46;
48->14;
50->48;
51->50;
53->51;
54->53;
55->54;
56->55;
57->56;
59->57;
60->59;
62->60;
63->62;
64->63;
65->64;
67->65;
69->60;
70->69;
71->70;
72->71;
74->72;
75->74;
77->75;
78->77;
80->78;
81->80;
83->81;
84->83;
85->84;
86->85;
88->86;
89->88;
90->89;
92->90;
93->85;
94->93;
95->94;
97->75;
98->97;
100->98;
101->100;
102->101;
104->71;
105->104;
106->105;
108->106;
109->108;
110->109;
112->110;
113->105;
114->113;
115->114;
117->57;
118->117;
120->118;
121->120;
123->121;
124->123;
126->124;
127->126;
129->127;
130->129;
131->130;
132->131;
134->132;
135->134;
136->135;
138->136;
139->131;
140->139;
141->140;
143->121;
144->143;
146->144;
147->146;
148->147;
}