digraph G {
0 [id="node0" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 39,996" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#22420, qty#452, demandChannel#19011, demandStream#19012, kpis#19046]"];
subgraph cluster1 {
isCluster="true";
id="cluster1";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
2 [id="node2" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#22420, qty#452, demandChannel#19011, demandStream#19012, kpis#19046]"];
3 [id="node3" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 0<br>spill size: 0.0 B" tooltip="SortMergeJoin [shardId#445, worklistShardItemId#446L], [shardId#22517, worklistShardItemId#22518L], Inner"];
}
subgraph cluster4 {
isCluster="true";
id="cluster4";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
5 [id="node5" 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 [shardId#445 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST], false, 0"];
}
6 [id="node6" 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(shardId#445, worklistShardItemId#446L, 37), ENSURE_REQUIREMENTS, [plan_id=117132]"];
7 [id="node7" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster8 {
isCluster="true";
id="cluster8";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
9 [id="node9" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#19011, demandStream#19012, kpis#19046]"];
10 [id="node10" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((NOT isNewlyCalculated#19014 AND isnotnull(shardId#445)) AND isnotnull(worklistShardItemId#446L))"];
}
11 [id="node11" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [demandChannel#19011, demandStream#19012, isNewlyCalculated#19014, kpis#19046, qty#452, shardId#445, worklistShardItemId#446L], [NOT isNewlyCalculated#19014, isnotnull(shardId#445), isnotnull(worklistShardItemId#446L)]"];
12 [id="node12" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster13 {
isCluster="true";
id="cluster13";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
14 [id="node14" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, null AS demandChannel#19011, null AS demandStream#19012, [] AS kpis#19046, true AS isNewlyCalculated#19014]"];
15 [id="node15" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452)], [coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778)], LeftAnti"];
}
subgraph cluster16 {
isCluster="true";
id="cluster16";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
17 [id="node17" 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"];
}
18 [id="node18" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452), 37), ENSURE_REQUIREMENTS, [plan_id=116156]"];
19 [id="node19" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]"];
20 [id="node20" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster21 {
isCluster="true";
id="cluster21";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
22 [id="node22" 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 cluster23 {
isCluster="true";
id="cluster23";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
24 [id="node24" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#19003, ) ASC NULLS FIRST, isnull(shardId#19003) ASC NULLS FIRST, coalesce(worklistShardItemId#19004L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#19004L) ASC NULLS FIRST, coalesce(version#19005, 0) ASC NULLS FIRST, isnull(version#19005) ASC NULLS FIRST, coalesce(product#19006, ) ASC NULLS FIRST, isnull(product#19006) ASC NULLS FIRST, coalesce(plant#19007, ) ASC NULLS FIRST, isnull(plant#19007) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))) ASC NULLS FIRST, isnull(qty#18778) ASC NULLS FIRST], false, 0"];
}
25 [id="node25" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778), 37), ENSURE_REQUIREMENTS, [plan_id=116185]"];
26 [id="node26" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
27 [id="node27" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, qty#18778]"];
subgraph cluster28 {
isCluster="true";
id="cluster28";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
29 [id="node29" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
30 [id="node30" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster31 {
isCluster="true";
id="cluster31";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
32 [id="node32" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
33 [id="node33" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
34 [id="node34" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
35 [id="node35" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
36 [id="node36" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster37 {
isCluster="true";
id="cluster37";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
38 [id="node38" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
39 [id="node39" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster40 {
isCluster="true";
id="cluster40";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
41 [id="node41" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
42 [id="node42" 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)]"];
43 [id="node43" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster44 {
isCluster="true";
id="cluster44";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
45 [id="node45" 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 cluster46 {
isCluster="true";
id="cluster46";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
47 [id="node47" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
48 [id="node48" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster49 {
isCluster="true";
id="cluster49";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
50 [id="node50" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
51 [id="node51" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
52 [id="node52" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster53 {
isCluster="true";
id="cluster53";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
54 [id="node54" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
55 [id="node55" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster56 {
isCluster="true";
id="cluster56";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
57 [id="node57" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
58 [id="node58" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
59 [id="node59" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
subgraph cluster60 {
isCluster="true";
id="cluster60";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
61 [id="node61" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]"];
62 [id="node62" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#18986L, shardId#18985], [cachedWorklistShardItemId#19000L, cachedShardId#18999], Inner"];
}
subgraph cluster63 {
isCluster="true";
id="cluster63";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
64 [id="node64" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#18986L ASC NULLS FIRST, shardId#18985 ASC NULLS FIRST], false, 0"];
}
65 [id="node65" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#18986L, shardId#18985, 37), ENSURE_REQUIREMENTS, [plan_id=116170]"];
subgraph cluster66 {
isCluster="true";
id="cluster66";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
67 [id="node67" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((isnull(qty#18992) AND isnotnull(worklistShardItemId#18986L)) AND isnotnull(shardId#18985))"];
}
68 [id="node68" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992], [isnull(qty#18992), isnotnull(worklistShardItemId#18986L), isnotnull(shardId#18985)]"];
69 [id="node69" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster70 {
isCluster="true";
id="cluster70";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
71 [id="node71" 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 cluster72 {
isCluster="true";
id="cluster72";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
73 [id="node73" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#19000L ASC NULLS FIRST, cachedShardId#18999 ASC NULLS FIRST], false, 0"];
}
74 [id="node74" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#19000L, cachedShardId#18999, 37), ENSURE_REQUIREMENTS, [plan_id=116176]"];
subgraph cluster75 {
isCluster="true";
id="cluster75";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
76 [id="node76" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18993 AS cachedShardId#18999, worklistShardItemId#18994L AS cachedWorklistShardItemId#19000L]"];
77 [id="node77" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18994L) AND isnotnull(shardId#18993))"];
78 [id="node78" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18993,worklistShardItemId#18994L,qty#18995,demandChannel#18996,demandStream#18997,kpis#18998]"];
}
subgraph cluster79 {
isCluster="true";
id="cluster79";
label="WholeStageCodegen (9)";
tooltip="WholeStageCodegen (9)";
80 [id="node80" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19044, demandChannel#19037, demandStream#19038, kpis#19045, false AS isNewlyCalculated#19015]"];
}
81 [id="node81" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [demandChannel#19037, demandStream#19038, kpis#19045, plant#19020, product#19019, qty#19044, shardId#19016, version#19018, worklistShardItemId#19017L]"];
subgraph cluster82 {
isCluster="true";
id="cluster82";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
83 [id="node83" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
84 [id="node84" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster85 {
isCluster="true";
id="cluster85";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
86 [id="node86" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
87 [id="node87" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
88 [id="node88" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
89 [id="node89" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
90 [id="node90" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster91 {
isCluster="true";
id="cluster91";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
92 [id="node92" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
93 [id="node93" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster94 {
isCluster="true";
id="cluster94";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
95 [id="node95" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
96 [id="node96" 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)]"];
97 [id="node97" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster98 {
isCluster="true";
id="cluster98";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
99 [id="node99" 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 cluster100 {
isCluster="true";
id="cluster100";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
101 [id="node101" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
102 [id="node102" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
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#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
105 [id="node105" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
106 [id="node106" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster107 {
isCluster="true";
id="cluster107";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
108 [id="node108" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
109 [id="node109" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
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#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
112 [id="node112" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
113 [id="node113" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
subgraph cluster114 {
isCluster="true";
id="cluster114";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
115 [id="node115" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(shardId#22425) AND isnotnull(worklistShardItemId#22426L))"];
}
116 [id="node116" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#22425, worklistShardItemId#22426L, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616], [isnotnull(shardId#22425), isnotnull(worklistShardItemId#22426L)]"];
117 [id="node117" labelType="html" label="<br><b>SortAggregate</b><br><br>" tooltip="SortAggregate(key=[demandChannel#21587, shardId#445, qty#21607, worklistShardItemId#446L, demandStream#21588], functions=[first(kpis#21616, false)])"];
subgraph cluster118 {
isCluster="true";
id="cluster118";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
119 [id="node119" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [demandChannel#21587 ASC NULLS FIRST, shardId#445 ASC NULLS FIRST, qty#21607 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST, demandStream#21588 ASC NULLS FIRST], false, 0"];
}
120 [id="node120" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(demandChannel#21587, shardId#445, qty#21607, worklistShardItemId#446L, demandStream#21588, 37), ENSURE_REQUIREMENTS, [plan_id=116966]"];
121 [id="node121" labelType="html" label="<br><b>SortAggregate</b><br><br>" tooltip="SortAggregate(key=[demandChannel#21587, shardId#445, knownfloatingpointnormalized(normalizenanandzero(qty#21607)) AS qty#21607, worklistShardItemId#446L, demandStream#21588], functions=[partial_first(kpis#21616, false)])"];
subgraph cluster122 {
isCluster="true";
id="cluster122";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
123 [id="node123" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [demandChannel#21587 ASC NULLS FIRST, shardId#445 ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(qty#21607)) AS qty#21607 ASC NULLS FIRST, worklistShardItemId#446L ASC NULLS FIRST, demandStream#21588 ASC NULLS FIRST], false, 0"];
124 [id="node124" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616]"];
125 [id="node125" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(product#21580, ), isnull(product#21580), coalesce(plant#21581, ), isnull(plant#21581)], [coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449)], Inner, ((qty#21607 <=> qty#452) OR isnull(qty#452))"];
}
subgraph cluster126 {
isCluster="true";
id="cluster126";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
127 [id="node127" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(product#21580, ) ASC NULLS FIRST, isnull(product#21580) ASC NULLS FIRST, coalesce(plant#21581, ) ASC NULLS FIRST, isnull(plant#21581) ASC NULLS FIRST], false, 0"];
}
128 [id="node128" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(product#21580, ), isnull(product#21580), coalesce(plant#21581, ), isnull(plant#21581), 37), ENSURE_REQUIREMENTS, [plan_id=116942]"];
129 [id="node129" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
130 [id="node130" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21561.productId AS product#21580, prodPlantResults#21561.plantId AS plant#21581, null AS qty#21607, null AS demandChannel#21587, null AS demandStream#21588, transform(prodPlantResults#21561.kpiResults, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21616]"];
131 [id="node131" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#21561]"];
subgraph cluster132 {
isCluster="true";
id="cluster132";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
133 [id="node133" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#21554), false, [prodPlantResults#21561]"];
134 [id="node134" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21554]"];
135 [id="node135" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21554, true) > 0) AND isnotnull(prodPlantResults#21554))"];
136 [id="node136" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#21553, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#21554]"];
}
137 [id="node137" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#21550]"];
138 [id="node138" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#21752 AS product#21567, _extract_plantId#21753 AS plant#21568, quantityKpiResults#21573.quantity AS qty#21574, null AS demandChannel#21576, null AS demandStream#21577, transform(quantityKpiResults#21573.kpiResults, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21750]"];
subgraph cluster139 {
isCluster="true";
id="cluster139";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
140 [id="node140" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(_extract_quantityKpiResults#21754), [_extract_productId#21752, _extract_plantId#21753], false, [quantityKpiResults#21573]"];
141 [id="node141" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21606.productId AS _extract_productId#21752, prodPlantResults#21606.plantId AS _extract_plantId#21753, prodPlantResults#21606.quantityKpiResults AS _extract_quantityKpiResults#21754]"];
142 [id="node142" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21606.quantityKpiResults, true) > 0) AND isnotnull(prodPlantResults#21606.quantityKpiResults))"];
}
143 [id="node143" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#21606], [(size(prodPlantResults#21606.quantityKpiResults, true) > 0), isnotnull(prodPlantResults#21606.quantityKpiResults)]"];
subgraph cluster144 {
isCluster="true";
id="cluster144";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
145 [id="node145" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#21554), false, [prodPlantResults#21561]"];
146 [id="node146" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21554]"];
147 [id="node147" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21554, true) > 0) AND isnotnull(prodPlantResults#21554))"];
148 [id="node148" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#21553, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#21554]"];
}
149 [id="node149" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#21550]"];
150 [id="node150" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_productId#21755 AS product#21589, _extract_plantId#21756 AS plant#21590, null AS qty#21612, demandChannelStreamKpiResults#21595.demandChannel AS demandChannel#21597, demandChannelStreamKpiResults#21595.demandStream AS demandStream#21599, transform(demandChannelStreamKpiResults#21595.kpiResults, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21751]"];
subgraph cluster151 {
isCluster="true";
id="cluster151";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
152 [id="node152" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(_extract_demandChannelStreamKpiResults#21757), [_extract_productId#21755, _extract_plantId#21756], false, [demandChannelStreamKpiResults#21595]"];
153 [id="node153" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21611.productId AS _extract_productId#21755, prodPlantResults#21611.plantId AS _extract_plantId#21756, prodPlantResults#21611.demandChannelStreamKpiResults AS _extract_demandChannelStreamKpiResults#21757]"];
154 [id="node154" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21611.demandChannelStreamKpiResults, true) > 0) AND isnotnull(prodPlantResults#21611.demandChannelStreamKpiResults))"];
}
155 [id="node155" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [prodPlantResults#21611], [(size(prodPlantResults#21611.demandChannelStreamKpiResults, true) > 0), isnotnull(prodPlantResults#21611.demandChannelStreamKpiResults)]"];
subgraph cluster156 {
isCluster="true";
id="cluster156";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
157 [id="node157" labelType="html" label="<br><b>Generate</b><br><br>" tooltip="Generate explode(prodPlantResults#21554), false, [prodPlantResults#21561]"];
158 [id="node158" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [prodPlantResults#21554]"];
159 [id="node159" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((size(prodPlantResults#21554, true) > 0) AND isnotnull(prodPlantResults#21554))"];
160 [id="node160" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#21553, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#21554]"];
}
161 [id="node161" labelType="html" label="<br><b>Scan</b><br><br>" tooltip="Scan[obj#21550]"];
subgraph cluster162 {
isCluster="true";
id="cluster162";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
163 [id="node163" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(product#448, ) ASC NULLS FIRST, isnull(product#448) ASC NULLS FIRST, coalesce(plant#449, ) ASC NULLS FIRST, isnull(plant#449) ASC NULLS FIRST], false, 0"];
}
164 [id="node164" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), 37), ENSURE_REQUIREMENTS, [plan_id=116956]"];
subgraph cluster165 {
isCluster="true";
id="cluster165";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
166 [id="node166" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, qty#452, worklistShardItemId#446L, product#448], functions=[])"];
}
167 [id="node167" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(plant#449, shardId#445, qty#452, worklistShardItemId#446L, product#448, 37), ENSURE_REQUIREMENTS, [plan_id=116952]"];
subgraph cluster168 {
isCluster="true";
id="cluster168";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
169 [id="node169" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, knownfloatingpointnormalized(normalizenanandzero(qty#452)) AS qty#452, worklistShardItemId#446L, product#448], functions=[])"];
170 [id="node170" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, product#448, plant#449, qty#452]"];
171 [id="node171" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter isNewlyCalculated#19014: boolean"];
}
172 [id="node172" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [isNewlyCalculated#19014, plant#449, product#448, qty#452, shardId#445, worklistShardItemId#446L], [isNewlyCalculated#19014]"];
173 [id="node173" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster174 {
isCluster="true";
id="cluster174";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
175 [id="node175" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, null AS demandChannel#19011, null AS demandStream#19012, [] AS kpis#19046, true AS isNewlyCalculated#19014]"];
176 [id="node176" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452)], [coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778)], LeftAnti"];
}
subgraph cluster177 {
isCluster="true";
id="cluster177";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
178 [id="node178" 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"];
}
179 [id="node179" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452), 37), ENSURE_REQUIREMENTS, [plan_id=116156]"];
180 [id="node180" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]"];
181 [id="node181" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster182 {
isCluster="true";
id="cluster182";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
183 [id="node183" 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 cluster184 {
isCluster="true";
id="cluster184";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
185 [id="node185" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#19003, ) ASC NULLS FIRST, isnull(shardId#19003) ASC NULLS FIRST, coalesce(worklistShardItemId#19004L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#19004L) ASC NULLS FIRST, coalesce(version#19005, 0) ASC NULLS FIRST, isnull(version#19005) ASC NULLS FIRST, coalesce(product#19006, ) ASC NULLS FIRST, isnull(product#19006) ASC NULLS FIRST, coalesce(plant#19007, ) ASC NULLS FIRST, isnull(plant#19007) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))) ASC NULLS FIRST, isnull(qty#18778) ASC NULLS FIRST], false, 0"];
}
186 [id="node186" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778), 37), ENSURE_REQUIREMENTS, [plan_id=116185]"];
187 [id="node187" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
188 [id="node188" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, qty#18778]"];
subgraph cluster189 {
isCluster="true";
id="cluster189";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
190 [id="node190" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
191 [id="node191" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster192 {
isCluster="true";
id="cluster192";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
193 [id="node193" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
194 [id="node194" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
195 [id="node195" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
196 [id="node196" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
197 [id="node197" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster198 {
isCluster="true";
id="cluster198";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
199 [id="node199" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
200 [id="node200" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster201 {
isCluster="true";
id="cluster201";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
202 [id="node202" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
203 [id="node203" 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)]"];
204 [id="node204" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster205 {
isCluster="true";
id="cluster205";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
206 [id="node206" 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 cluster207 {
isCluster="true";
id="cluster207";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
208 [id="node208" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
209 [id="node209" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster210 {
isCluster="true";
id="cluster210";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
211 [id="node211" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
212 [id="node212" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
213 [id="node213" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster214 {
isCluster="true";
id="cluster214";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
215 [id="node215" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
216 [id="node216" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster217 {
isCluster="true";
id="cluster217";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
218 [id="node218" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
219 [id="node219" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
220 [id="node220" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
subgraph cluster221 {
isCluster="true";
id="cluster221";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
222 [id="node222" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]"];
223 [id="node223" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#18986L, shardId#18985], [cachedWorklistShardItemId#19000L, cachedShardId#18999], Inner"];
}
subgraph cluster224 {
isCluster="true";
id="cluster224";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
225 [id="node225" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#18986L ASC NULLS FIRST, shardId#18985 ASC NULLS FIRST], false, 0"];
}
226 [id="node226" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#18986L, shardId#18985, 37), ENSURE_REQUIREMENTS, [plan_id=116170]"];
subgraph cluster227 {
isCluster="true";
id="cluster227";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
228 [id="node228" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((isnull(qty#18992) AND isnotnull(worklistShardItemId#18986L)) AND isnotnull(shardId#18985))"];
}
229 [id="node229" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992], [isnull(qty#18992), isnotnull(worklistShardItemId#18986L), isnotnull(shardId#18985)]"];
230 [id="node230" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster231 {
isCluster="true";
id="cluster231";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
232 [id="node232" 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 cluster233 {
isCluster="true";
id="cluster233";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
234 [id="node234" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#19000L ASC NULLS FIRST, cachedShardId#18999 ASC NULLS FIRST], false, 0"];
}
235 [id="node235" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#19000L, cachedShardId#18999, 37), ENSURE_REQUIREMENTS, [plan_id=116176]"];
subgraph cluster236 {
isCluster="true";
id="cluster236";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
237 [id="node237" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18993 AS cachedShardId#18999, worklistShardItemId#18994L AS cachedWorklistShardItemId#19000L]"];
238 [id="node238" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18994L) AND isnotnull(shardId#18993))"];
239 [id="node239" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18993,worklistShardItemId#18994L,qty#18995,demandChannel#18996,demandStream#18997,kpis#18998]"];
}
subgraph cluster240 {
isCluster="true";
id="cluster240";
label="WholeStageCodegen (9)";
tooltip="WholeStageCodegen (9)";
241 [id="node241" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19044, demandChannel#19037, demandStream#19038, kpis#19045, false AS isNewlyCalculated#19015]"];
}
242 [id="node242" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [demandChannel#19037, demandStream#19038, kpis#19045, plant#19020, product#19019, qty#19044, shardId#19016, version#19018, worklistShardItemId#19017L]"];
subgraph cluster243 {
isCluster="true";
id="cluster243";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
244 [id="node244" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
245 [id="node245" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster246 {
isCluster="true";
id="cluster246";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
247 [id="node247" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
248 [id="node248" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
249 [id="node249" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
250 [id="node250" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
251 [id="node251" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster252 {
isCluster="true";
id="cluster252";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
253 [id="node253" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
254 [id="node254" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster255 {
isCluster="true";
id="cluster255";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
256 [id="node256" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
257 [id="node257" 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)]"];
258 [id="node258" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster259 {
isCluster="true";
id="cluster259";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
260 [id="node260" 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 cluster261 {
isCluster="true";
id="cluster261";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
262 [id="node262" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
263 [id="node263" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster264 {
isCluster="true";
id="cluster264";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
265 [id="node265" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
266 [id="node266" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
267 [id="node267" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster268 {
isCluster="true";
id="cluster268";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
269 [id="node269" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
270 [id="node270" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster271 {
isCluster="true";
id="cluster271";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
272 [id="node272" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
273 [id="node273" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
274 [id="node274" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
subgraph cluster275 {
isCluster="true";
id="cluster275";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
276 [id="node276" 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 [shardId#22517 ASC NULLS FIRST, worklistShardItemId#22518L ASC NULLS FIRST], false, 0"];
277 [id="node277" 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=[shardId#22517, worklistShardItemId#22518L], functions=[max(version#22519)])"];
}
278 [id="node278" 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(shardId#22517, worklistShardItemId#22518L, 37), ENSURE_REQUIREMENTS, [plan_id=117141]"];
subgraph cluster279 {
isCluster="true";
id="cluster279";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
280 [id="node280" 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=[shardId#22517, worklistShardItemId#22518L], functions=[partial_max(version#22519)])"];
281 [id="node281" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (isnotnull(shardId#22517) AND isnotnull(worklistShardItemId#22518L))"];
}
282 [id="node282" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [shardId#22517, worklistShardItemId#22518L, version#22519], [isnotnull(shardId#22517), isnotnull(worklistShardItemId#22518L)]"];
283 [id="node283" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
subgraph cluster284 {
isCluster="true";
id="cluster284";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
285 [id="node285" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, null AS demandChannel#19011, null AS demandStream#19012, [] AS kpis#19046, true AS isNewlyCalculated#19014]"];
286 [id="node286" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452)], [coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778)], LeftAnti"];
}
subgraph cluster287 {
isCluster="true";
id="cluster287";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
288 [id="node288" 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"];
}
289 [id="node289" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#445, ), isnull(shardId#445), coalesce(worklistShardItemId#446L, 0), isnull(worklistShardItemId#446L), coalesce(version#447, 0), isnull(version#447), coalesce(product#448, ), isnull(product#448), coalesce(plant#449, ), isnull(plant#449), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#452, 0.0))), isnull(qty#452), 37), ENSURE_REQUIREMENTS, [plan_id=116156]"];
290 [id="node290" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]"];
291 [id="node291" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster292 {
isCluster="true";
id="cluster292";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
293 [id="node293" 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 cluster294 {
isCluster="true";
id="cluster294";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
295 [id="node295" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [coalesce(shardId#19003, ) ASC NULLS FIRST, isnull(shardId#19003) ASC NULLS FIRST, coalesce(worklistShardItemId#19004L, 0) ASC NULLS FIRST, isnull(worklistShardItemId#19004L) ASC NULLS FIRST, coalesce(version#19005, 0) ASC NULLS FIRST, isnull(version#19005) ASC NULLS FIRST, coalesce(product#19006, ) ASC NULLS FIRST, isnull(product#19006) ASC NULLS FIRST, coalesce(plant#19007, ) ASC NULLS FIRST, isnull(plant#19007) ASC NULLS FIRST, knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))) ASC NULLS FIRST, isnull(qty#18778) ASC NULLS FIRST], false, 0"];
}
296 [id="node296" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(coalesce(shardId#19003, ), isnull(shardId#19003), coalesce(worklistShardItemId#19004L, 0), isnull(worklistShardItemId#19004L), coalesce(version#19005, 0), isnull(version#19005), coalesce(product#19006, ), isnull(product#19006), coalesce(plant#19007, ), isnull(plant#19007), knownfloatingpointnormalized(normalizenanandzero(coalesce(qty#18778, 0.0))), isnull(qty#18778), 37), ENSURE_REQUIREMENTS, [plan_id=116185]"];
297 [id="node297" labelType="html" label="<br><b>Union</b><br><br>" tooltip="Union"];
298 [id="node298" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, qty#18778]"];
subgraph cluster299 {
isCluster="true";
id="cluster299";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
300 [id="node300" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
301 [id="node301" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster302 {
isCluster="true";
id="cluster302";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
303 [id="node303" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
304 [id="node304" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
305 [id="node305" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
306 [id="node306" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
307 [id="node307" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster308 {
isCluster="true";
id="cluster308";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
309 [id="node309" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
310 [id="node310" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster311 {
isCluster="true";
id="cluster311";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
312 [id="node312" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
313 [id="node313" 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)]"];
314 [id="node314" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster315 {
isCluster="true";
id="cluster315";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
316 [id="node316" 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 cluster317 {
isCluster="true";
id="cluster317";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
318 [id="node318" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
319 [id="node319" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster320 {
isCluster="true";
id="cluster320";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
321 [id="node321" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
322 [id="node322" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
323 [id="node323" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster324 {
isCluster="true";
id="cluster324";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
325 [id="node325" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
326 [id="node326" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster327 {
isCluster="true";
id="cluster327";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
328 [id="node328" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
329 [id="node329" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
330 [id="node330" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
subgraph cluster331 {
isCluster="true";
id="cluster331";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
332 [id="node332" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]"];
333 [id="node333" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#18986L, shardId#18985], [cachedWorklistShardItemId#19000L, cachedShardId#18999], Inner"];
}
subgraph cluster334 {
isCluster="true";
id="cluster334";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
335 [id="node335" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#18986L ASC NULLS FIRST, shardId#18985 ASC NULLS FIRST], false, 0"];
}
336 [id="node336" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#18986L, shardId#18985, 37), ENSURE_REQUIREMENTS, [plan_id=116170]"];
subgraph cluster337 {
isCluster="true";
id="cluster337";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
338 [id="node338" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter ((isnull(qty#18992) AND isnotnull(worklistShardItemId#18986L)) AND isnotnull(shardId#18985))"];
}
339 [id="node339" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992], [isnull(qty#18992), isnotnull(worklistShardItemId#18986L), isnotnull(shardId#18985)]"];
340 [id="node340" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster341 {
isCluster="true";
id="cluster341";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
342 [id="node342" 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 cluster343 {
isCluster="true";
id="cluster343";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
344 [id="node344" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#19000L ASC NULLS FIRST, cachedShardId#18999 ASC NULLS FIRST], false, 0"];
}
345 [id="node345" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#19000L, cachedShardId#18999, 37), ENSURE_REQUIREMENTS, [plan_id=116176]"];
subgraph cluster346 {
isCluster="true";
id="cluster346";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
347 [id="node347" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18993 AS cachedShardId#18999, worklistShardItemId#18994L AS cachedWorklistShardItemId#19000L]"];
348 [id="node348" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18994L) AND isnotnull(shardId#18993))"];
349 [id="node349" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18993,worklistShardItemId#18994L,qty#18995,demandChannel#18996,demandStream#18997,kpis#18998]"];
}
subgraph cluster350 {
isCluster="true";
id="cluster350";
label="WholeStageCodegen (9)";
tooltip="WholeStageCodegen (9)";
351 [id="node351" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19044, demandChannel#19037, demandStream#19038, kpis#19045, false AS isNewlyCalculated#19015]"];
}
352 [id="node352" labelType="html" label="<br><b>InMemoryTableScan</b><br><br>" tooltip="InMemoryTableScan [demandChannel#19037, demandStream#19038, kpis#19045, plant#19020, product#19019, qty#19044, shardId#19016, version#19018, worklistShardItemId#19017L]"];
subgraph cluster353 {
isCluster="true";
id="cluster353";
label="WholeStageCodegen (8)";
tooltip="WholeStageCodegen (8)";
354 [id="node354" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]"];
355 [id="node355" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18775L, cachedShardId#18774], Inner"];
}
subgraph cluster356 {
isCluster="true";
id="cluster356";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
357 [id="node357" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
358 [id="node358" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
359 [id="node359" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[plant#449, shardId#445, version#447, worklistShardItemId#446L, product#448], functions=[])"];
360 [id="node360" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449]"];
361 [id="node361" labelType="html" label="<br><b>SortMergeJoin</b><br><br>" tooltip="SortMergeJoin [worklistShardItemId#446L, shardId#445], [cachedWorklistShardItemId#18765L, cachedShardId#18764], Inner, ((qty#452 = cachedQty#18766) OR isnull(qty#452))"];
}
subgraph cluster362 {
isCluster="true";
id="cluster362";
label="WholeStageCodegen (2)";
tooltip="WholeStageCodegen (2)";
363 [id="node363" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [worklistShardItemId#446L ASC NULLS FIRST, shardId#445 ASC NULLS FIRST], false, 0"];
}
364 [id="node364" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(worklistShardItemId#446L, shardId#445, 37), ENSURE_REQUIREMENTS, [plan_id=116039]"];
subgraph cluster365 {
isCluster="true";
id="cluster365";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
366 [id="node366" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#446L) AND isnotnull(shardId#445))"];
}
367 [id="node367" 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)]"];
368 [id="node368" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(product#448, plant#449, 37), REPARTITION_BY_NUM, [plan_id=115930]"];
subgraph cluster369 {
isCluster="true";
id="cluster369";
label="WholeStageCodegen (1)";
tooltip="WholeStageCodegen (1)";
370 [id="node370" 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 cluster371 {
isCluster="true";
id="cluster371";
label="WholeStageCodegen (4)";
tooltip="WholeStageCodegen (4)";
372 [id="node372" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18765L ASC NULLS FIRST, cachedShardId#18764 ASC NULLS FIRST], false, 0"];
}
373 [id="node373" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18765L, cachedShardId#18764, 37), ENSURE_REQUIREMENTS, [plan_id=116045]"];
subgraph cluster374 {
isCluster="true";
id="cluster374";
label="WholeStageCodegen (3)";
tooltip="WholeStageCodegen (3)";
375 [id="node375" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766]"];
376 [id="node376" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18759L) AND isnotnull(shardId#18758))"];
377 [id="node377" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18758,worklistShardItemId#18759L,qty#18760,demandChannel#18761,demandStream#18762,kpis#18763]"];
}
subgraph cluster378 {
isCluster="true";
id="cluster378";
label="WholeStageCodegen (7)";
tooltip="WholeStageCodegen (7)";
379 [id="node379" labelType="html" label="<br><b>Sort</b><br><br>" tooltip="Sort [cachedWorklistShardItemId#18775L ASC NULLS FIRST, cachedShardId#18774 ASC NULLS FIRST], false, 0"];
}
380 [id="node380" labelType="html" label="<br><b>Exchange</b><br><br>" tooltip="Exchange hashpartitioning(cachedWorklistShardItemId#18775L, cachedShardId#18774, 37), ENSURE_REQUIREMENTS, [plan_id=116058]"];
subgraph cluster381 {
isCluster="true";
id="cluster381";
label="WholeStageCodegen (6)";
tooltip="WholeStageCodegen (6)";
382 [id="node382" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]"];
383 [id="node383" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (isnotnull(worklistShardItemId#18769L) AND isnotnull(shardId#18768))"];
384 [id="node384" labelType="html" label="<br><b>Scan ExistingRDD</b><br><br>" tooltip="Scan ExistingRDD[shardId#18768,worklistShardItemId#18769L,qty#18770,demandChannel#18771,demandStream#18772,kpis#18773]"];
}
2->0;
3->2;
5->3;
6->5;
7->6;
9->7;
10->9;
11->10;
12->11;
14->12;
15->14;
17->15;
18->17;
19->18;
20->19;
22->20;
24->15;
25->24;
26->25;
27->26;
29->27;
30->29;
32->30;
33->32;
34->33;
35->34;
36->35;
38->36;
39->38;
41->39;
42->41;
43->42;
45->43;
47->36;
48->47;
50->48;
51->50;
52->51;
54->30;
55->54;
57->55;
58->57;
59->58;
61->26;
62->61;
64->62;
65->64;
67->65;
68->67;
69->68;
71->69;
73->62;
74->73;
76->74;
77->76;
78->77;
80->12;
81->80;
83->81;
84->83;
86->84;
87->86;
88->87;
89->88;
90->89;
92->90;
93->92;
95->93;
96->95;
97->96;
99->97;
101->90;
102->101;
104->102;
105->104;
106->105;
108->84;
109->108;
111->109;
112->111;
113->112;
115->7;
116->115;
117->116;
119->117;
120->119;
121->120;
123->121;
124->123;
125->124;
127->125;
128->127;
129->128;
130->129;
131->130;
133->131;
134->133;
135->134;
136->135;
137->136;
138->129;
140->138;
141->140;
142->141;
143->142;
145->143;
146->145;
147->146;
148->147;
149->148;
150->129;
152->150;
153->152;
154->153;
155->154;
157->155;
158->157;
159->158;
160->159;
161->160;
163->125;
164->163;
166->164;
167->166;
169->167;
170->169;
171->170;
172->171;
173->172;
175->173;
176->175;
178->176;
179->178;
180->179;
181->180;
183->181;
185->176;
186->185;
187->186;
188->187;
190->188;
191->190;
193->191;
194->193;
195->194;
196->195;
197->196;
199->197;
200->199;
202->200;
203->202;
204->203;
206->204;
208->197;
209->208;
211->209;
212->211;
213->212;
215->191;
216->215;
218->216;
219->218;
220->219;
222->187;
223->222;
225->223;
226->225;
228->226;
229->228;
230->229;
232->230;
234->223;
235->234;
237->235;
238->237;
239->238;
241->173;
242->241;
244->242;
245->244;
247->245;
248->247;
249->248;
250->249;
251->250;
253->251;
254->253;
256->254;
257->256;
258->257;
260->258;
262->251;
263->262;
265->263;
266->265;
267->266;
269->245;
270->269;
272->270;
273->272;
274->273;
276->3;
277->276;
278->277;
280->278;
281->280;
282->281;
283->282;
285->283;
286->285;
288->286;
289->288;
290->289;
291->290;
293->291;
295->286;
296->295;
297->296;
298->297;
300->298;
301->300;
303->301;
304->303;
305->304;
306->305;
307->306;
309->307;
310->309;
312->310;
313->312;
314->313;
316->314;
318->307;
319->318;
321->319;
322->321;
323->322;
325->301;
326->325;
328->326;
329->328;
330->329;
332->297;
333->332;
335->333;
336->335;
338->336;
339->338;
340->339;
342->340;
344->333;
345->344;
347->345;
348->347;
349->348;
351->283;
352->351;
354->352;
355->354;
357->355;
358->357;
359->358;
360->359;
361->360;
363->361;
364->363;
366->364;
367->366;
368->367;
370->368;
372->361;
373->372;
375->373;
376->375;
377->376;
379->355;
380->379;
382->380;
383->382;
384->383;
}