== Physical Plan ==
* HashAggregate (95)
+- * HashAggregate (94)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- Project (93)
+- Exchange (92)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- ObjectHashAggregate (91)
+- Exchange (90)
+- ObjectHashAggregate (89)
+- Project (88)
+- SortMergeJoin LeftOuter (87)
:- Sort (59)
: +- Exchange (58)
: +- Project (57)
: +- Project (56)
: +- ObjectHashAggregate (55)
: +- Exchange (54)
: +- ObjectHashAggregate (53)
: +- ObjectHashAggregate (52)
: +- Exchange (51)
: +- ObjectHashAggregate (50)
: +- Project (49)
: +- Project (48)
: +- Project (47)
: +- * Project (46)
: +- * SortMergeJoin LeftOuter (45)
: :- * Project (37)
: : +- * SortMergeJoin LeftOuter (36)
: : :- * Project (28)
: : : +- * SortMergeJoin LeftOuter (27)
: : : :- * Sort (21)
: : : : +- Exchange (20)
: : : : +- * Project (19)
: : : : +- * Filter (18)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (17)
: : : : :- * Project (9)
: : : : : +- * Generate (8)
: : : : : +- * Project (7)
: : : : : +- * Filter (6)
: : : : : +- * Scan ExistingRDD (5)
: : : : +- BroadcastExchange (16)
: : : : +- * Project (15)
: : : : +- Exchange (14)
: : : : +- * Project (13)
: : : : +- * Filter (12)
: : : : +- * ColumnarToRow (11)
: : : : +- Scan parquet (10)
: : : +- * Sort (26)
: : : +- Exchange (25)
: : : +- * Project (24)
: : : +- * Filter (23)
: : : +- * Scan ExistingRDD (22)
: : +- * Sort (35)
: : +- ObjectHashAggregate (34)
: : +- Exchange (33)
: : +- ObjectHashAggregate (32)
: : +- * Project (31)
: : +- * Filter (30)
: : +- * Scan ExistingRDD (29)
: +- * Sort (44)
: +- ObjectHashAggregate (43)
: +- Exchange (42)
: +- ObjectHashAggregate (41)
: +- * Project (40)
: +- * Filter (39)
: +- * Scan ExistingRDD (38)
+- * Sort (86)
+- Exchange (85)
+- Project (84)
+- * SortMergeJoin Inner (83)
:- * Sort (64)
: +- Exchange (63)
: +- * Project (62)
: +- * Filter (61)
: +- * Scan ExistingRDD (60)
+- * Sort (82)
+- * HashAggregate (81)
+- Exchange (80)
+- * HashAggregate (79)
+- * Project (78)
+- * BroadcastHashJoin Inner BuildRight (77)
:- * Project (69)
: +- * Generate (68)
: +- * Project (67)
: +- * Filter (66)
: +- * Scan ExistingRDD (65)
+- BroadcastExchange (76)
+- * Project (75)
+- Exchange (74)
+- * Project (73)
+- * Filter (72)
+- * ColumnarToRow (71)
+- Scan parquet (70)
(1) InMemoryTableScan
Output [1]: [shardId#555917]
Arguments: [shardId#555917]
(2) InMemoryRelation
Arguments: [shardId#555917, orderProposals#568626], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [3]: [shardId#555917, resultSeparationId#568622L, orderProposals#568626]
Arguments: [shardId#555917, resultSeparationId#568622L, orderProposals#568626]
(4) InMemoryRelation
Arguments: [shardId#555917, resultSeparationId#568622L, orderProposals#568626], StorageLevel(disk, memory, 2 replicas)
(5) Scan ExistingRDD [codegen id : 3]
Output [7]: [shardId#555917, orderProposalId#555918L, items#555919, optimizationGroups#555920, isOptimal#555921, lastModified#555922, optimizationInsights#555923]
Arguments: [shardId#555917, orderProposalId#555918L, items#555919, optimizationGroups#555920, isOptimal#555921, lastModified#555922, optimizationInsights#555923], MapPartitionsRDD[26501] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(6) Filter [codegen id : 3]
Input [7]: [shardId#555917, orderProposalId#555918L, items#555919, optimizationGroups#555920, isOptimal#555921, lastModified#555922, optimizationInsights#555923]
Condition : ((isnotnull(shardId#555917) AND (shardId#555917 = 0_1_10000002107)) AND ((size(items#555919, true) > 0) AND isnotnull(items#555919)))
(7) Project [codegen id : 3]
Output [2]: [shardId#555917, items#555919]
Input [7]: [shardId#555917, orderProposalId#555918L, items#555919, optimizationGroups#555920, isOptimal#555921, lastModified#555922, optimizationInsights#555923]
(8) Generate [codegen id : 3]
Input [2]: [shardId#555917, items#555919]
Arguments: explode(items#555919), [shardId#555917], false, [item#556512]
(9) Project [codegen id : 3]
Output [4]: [shardId#555917, item#556512.worklistShardItemId AS worklistShardItemId#556513L, item#556512.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#556514, item#556512.qty AS qty#556515]
Input [2]: [shardId#555917, item#556512]
(10) Scan parquet
Output [36]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860, shardId#556861, sequenceId#556839]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/internal/prod-plant-snapshot/10000002107]
PartitionFilters: [isnotnull(shardId#556861), isnotnull(sequenceId#556839), (shardId#556861 = 0_1_10000002107), (sequenceId#556839 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId)]
ReadSchema: struct<orderProposalId:bigint,orderProposalItemId:string,supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:string,supplyingPlant:string,productGroup:string,product:string,orderDateTime:timestamp,availabilityDateTime:timestamp,nextAvailabilityDateTime:timestamp,sourceOfSupplyUuid:string,isFallbackOrderOnly:boolean,splitIndicator:bigint,previousOrderProposal:bigint,worklistShardItemId:bigint,orderProposalItemGroupId:string,logisticUnits:array<struct<uom:string,uomUuid:string,numerator:int,denominator:int,isOrderUnit:boolean,isPreferred:boolean>>,orderQuantityBaseUom:string,orderQuantityBaseUomUuid:string,minimumOrderQuantity:double,constraintLabels:array<string>,constraintOperators:array<string>,constraintValues:array<double>,netPriceAmount:double,netPriceCurrencyCode:string,netPriceQuantity:double,netPriceQuantityUom:string,netPriceQuantityUomUuid:string,measurements:array<struct<value:double,dimensionType:int,dimensionCode:string,dimensionCodeUuid:string,isoCode:string>>,originalReplenishmentRunId:bigint,optimizationGroups:array<string>>
(11) ColumnarToRow [codegen id : 1]
Input [36]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860, shardId#556861, sequenceId#556839]
(12) Filter [codegen id : 1]
Input [36]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860, shardId#556861, sequenceId#556839]
Condition : isnotnull(worklistShardItemId#556840L)
(13) Project [codegen id : 1]
Output [34]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860]
Input [36]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860, shardId#556861, sequenceId#556839]
(14) Exchange
Input [34]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860]
Arguments: hashpartitioning(worklistShardItemId#556840L, 20), REPARTITION_BY_NUM, [plan_id=240105]
(15) Project [codegen id : 2]
Output [34]: [worklistShardItemId#556840L, orderProposalId#556817L, orderProposalItemId#556818, orderProposalItemGroupId#556841, originalReplenishmentRunId#556859L, splitIndicator#556836L, previousOrderProposal#556837L, sourceOfSupplyUuid#556831, supplierGroup#556819, supplier#556820, subrange#556823, product#556826, plant#556821, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, isFallbackOrderOnly#556834, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, netPriceAmount#556853, netPriceCurrencyCode#556854, measurements#556858, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, logisticUnits#556844, optimizationGroups#556860, supplyingPlant#556824, productGroup#556825]
Input [34]: [orderProposalId#556817L, orderProposalItemId#556818, supplierGroup#556819, supplier#556820, plant#556821, deliveryDateTime#556822, subrange#556823, supplyingPlant#556824, productGroup#556825, product#556826, orderDateTime#556827, availabilityDateTime#556828, nextAvailabilityDateTime#556829, sourceOfSupplyUuid#556831, isFallbackOrderOnly#556834, splitIndicator#556836L, previousOrderProposal#556837L, worklistShardItemId#556840L, orderProposalItemGroupId#556841, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, measurements#556858, originalReplenishmentRunId#556859L, optimizationGroups#556860]
(16) BroadcastExchange
Input [34]: [worklistShardItemId#556840L, orderProposalId#556817L, orderProposalItemId#556818, orderProposalItemGroupId#556841, originalReplenishmentRunId#556859L, splitIndicator#556836L, previousOrderProposal#556837L, sourceOfSupplyUuid#556831, supplierGroup#556819, supplier#556820, subrange#556823, product#556826, plant#556821, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, isFallbackOrderOnly#556834, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, netPriceAmount#556853, netPriceCurrencyCode#556854, measurements#556858, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, logisticUnits#556844, optimizationGroups#556860, supplyingPlant#556824, productGroup#556825]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=240109]
(17) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#556513L]
Right keys [1]: [worklistShardItemId#556840L]
Join type: LeftOuter
Join condition: (shardId#555917 = 0_1_10000002107)
(18) Filter [codegen id : 3]
Input [38]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, worklistShardItemId#556840L, orderProposalId#556817L, orderProposalItemId#556818, orderProposalItemGroupId#556841, originalReplenishmentRunId#556859L, splitIndicator#556836L, previousOrderProposal#556837L, sourceOfSupplyUuid#556831, supplierGroup#556819, supplier#556820, subrange#556823, product#556826, plant#556821, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, isFallbackOrderOnly#556834, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, netPriceAmount#556853, netPriceCurrencyCode#556854, measurements#556858, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, logisticUnits#556844, optimizationGroups#556860, supplyingPlant#556824, productGroup#556825]
Condition : NOT (isFallbackOrderOnly#556834 <=> true)
(19) Project [codegen id : 3]
Output [36]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L]
Input [38]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, worklistShardItemId#556840L, orderProposalId#556817L, orderProposalItemId#556818, orderProposalItemGroupId#556841, originalReplenishmentRunId#556859L, splitIndicator#556836L, previousOrderProposal#556837L, sourceOfSupplyUuid#556831, supplierGroup#556819, supplier#556820, subrange#556823, product#556826, plant#556821, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, isFallbackOrderOnly#556834, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, netPriceAmount#556853, netPriceCurrencyCode#556854, measurements#556858, minimumOrderQuantity#556847, constraintLabels#556848, constraintOperators#556849, constraintValues#556850, logisticUnits#556844, optimizationGroups#556860, supplyingPlant#556824, productGroup#556825]
(20) Exchange
Input [36]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L]
Arguments: hashpartitioning(shardId#555917, worklistShardItemId#556513L, 20), ENSURE_REQUIREMENTS, [plan_id=240115]
(21) Sort [codegen id : 4]
Input [36]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L]
Arguments: [shardId#555917 ASC NULLS FIRST, worklistShardItemId#556513L ASC NULLS FIRST], false, 0
(22) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#563116, worklistShardItemId#563117L, qty#563118, demandChannel#563119, demandStream#563120, kpis#563121]
Arguments: [shardId#563116, worklistShardItemId#563117L, qty#563118, demandChannel#563119, demandStream#563120, kpis#563121], MapPartitionsRDD[26757] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(23) Filter [codegen id : 5]
Input [6]: [shardId#563116, worklistShardItemId#563117L, qty#563118, demandChannel#563119, demandStream#563120, kpis#563121]
Condition : (((isnull(qty#563118) AND isnull(demandChannel#563119)) AND isnull(demandStream#563120)) AND (((shardId#563116 = 0_1_10000002107) AND isnotnull(shardId#563116)) AND isnotnull(worklistShardItemId#563117L)))
(24) Project [codegen id : 5]
Output [3]: [shardId#563116, worklistShardItemId#563117L, coalesce(kpis#563121, []) AS prodLocSpecificKpis#563122]
Input [6]: [shardId#563116, worklistShardItemId#563117L, qty#563118, demandChannel#563119, demandStream#563120, kpis#563121]
(25) Exchange
Input [3]: [shardId#563116, worklistShardItemId#563117L, prodLocSpecificKpis#563122]
Arguments: hashpartitioning(shardId#563116, worklistShardItemId#563117L, 20), ENSURE_REQUIREMENTS, [plan_id=240121]
(26) Sort [codegen id : 6]
Input [3]: [shardId#563116, worklistShardItemId#563117L, prodLocSpecificKpis#563122]
Arguments: [shardId#563116 ASC NULLS FIRST, worklistShardItemId#563117L ASC NULLS FIRST], false, 0
(27) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#555917, worklistShardItemId#556513L]
Right keys [2]: [shardId#563116, worklistShardItemId#563117L]
Join type: LeftOuter
Join condition: None
(28) Project [codegen id : 7]
Output [37]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, coalesce(prodLocSpecificKpis#563122, []) AS prodLocSpecificKpis#563123]
Input [39]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, shardId#563116, worklistShardItemId#563117L, prodLocSpecificKpis#563122]
(29) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#563132, worklistShardItemId#563133L, qty#563134, demandChannel#563135, demandStream#563136, kpis#563137]
Arguments: [shardId#563132, worklistShardItemId#563133L, qty#563134, demandChannel#563135, demandStream#563136, kpis#563137], MapPartitionsRDD[26757] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(30) Filter [codegen id : 8]
Input [6]: [shardId#563132, worklistShardItemId#563133L, qty#563134, demandChannel#563135, demandStream#563136, kpis#563137]
Condition : ((((isnull(qty#563134) AND isnotnull(demandChannel#563135)) AND isnotnull(demandStream#563136)) AND (size(kpis#563137, true) > 0)) AND (((shardId#563132 = 0_1_10000002107) AND isnotnull(shardId#563132)) AND isnotnull(worklistShardItemId#563133L)))
(31) Project [codegen id : 8]
Output [5]: [shardId#563132, worklistShardItemId#563133L, demandChannel#563135, demandStream#563136, kpis#563137]
Input [6]: [shardId#563132, worklistShardItemId#563133L, qty#563134, demandChannel#563135, demandStream#563136, kpis#563137]
(32) ObjectHashAggregate
Input [5]: [shardId#563132, worklistShardItemId#563133L, demandChannel#563135, demandStream#563136, kpis#563137]
Keys [2]: [shardId#563132, worklistShardItemId#563133L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#563135, demandStream, demandStream#563136, kpis, kpis#563137), 0, 0)]
Aggregate Attributes [1]: [buf#563558]
Results [3]: [shardId#563132, worklistShardItemId#563133L, buf#563559]
(33) Exchange
Input [3]: [shardId#563132, worklistShardItemId#563133L, buf#563559]
Arguments: hashpartitioning(shardId#563132, worklistShardItemId#563133L, 20), ENSURE_REQUIREMENTS, [plan_id=240132]
(34) ObjectHashAggregate
Input [3]: [shardId#563132, worklistShardItemId#563133L, buf#563559]
Keys [2]: [shardId#563132, worklistShardItemId#563133L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#563135, demandStream, demandStream#563136, kpis, kpis#563137), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#563135, demandStream, demandStream#563136, kpis, kpis#563137), 0, 0)#563131]
Results [3]: [shardId#563132, worklistShardItemId#563133L, collect_list(struct(demandChannel, demandChannel#563135, demandStream, demandStream#563136, kpis, kpis#563137), 0, 0)#563131 AS channelStreamSpecificKpis#563124]
(35) Sort [codegen id : 9]
Input [3]: [shardId#563132, worklistShardItemId#563133L, channelStreamSpecificKpis#563124]
Arguments: [shardId#563132 ASC NULLS FIRST, worklistShardItemId#563133L ASC NULLS FIRST], false, 0
(36) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#555917, worklistShardItemId#556513L]
Right keys [2]: [shardId#563132, worklistShardItemId#563133L]
Join type: LeftOuter
Join condition: None
(37) Project [codegen id : 10]
Output [38]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, coalesce(channelStreamSpecificKpis#563124, []) AS channelStreamSpecificKpis#563138]
Input [40]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, shardId#563132, worklistShardItemId#563133L, channelStreamSpecificKpis#563124]
(38) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#563145, worklistShardItemId#563146L, qty#563147, demandChannel#563148, demandStream#563149, kpis#563150]
Arguments: [shardId#563145, worklistShardItemId#563146L, qty#563147, demandChannel#563148, demandStream#563149, kpis#563150], MapPartitionsRDD[26757] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(39) Filter [codegen id : 11]
Input [6]: [shardId#563145, worklistShardItemId#563146L, qty#563147, demandChannel#563148, demandStream#563149, kpis#563150]
Condition : ((isnotnull(qty#563147) AND isnotnull(kpis#563150)) AND (((shardId#563145 = 0_1_10000002107) AND isnotnull(shardId#563145)) AND isnotnull(worklistShardItemId#563146L)))
(40) Project [codegen id : 11]
Output [4]: [shardId#563145, worklistShardItemId#563146L, qty#563147, kpis#563150]
Input [6]: [shardId#563145, worklistShardItemId#563146L, qty#563147, demandChannel#563148, demandStream#563149, kpis#563150]
(41) ObjectHashAggregate
Input [4]: [shardId#563145, worklistShardItemId#563146L, qty#563147, kpis#563150]
Keys [2]: [shardId#563145, worklistShardItemId#563146L]
Functions [1]: [partial_collect_list(struct(qty, qty#563147, kpis, kpis#563150), 0, 0)]
Aggregate Attributes [1]: [buf#563560]
Results [3]: [shardId#563145, worklistShardItemId#563146L, buf#563561]
(42) Exchange
Input [3]: [shardId#563145, worklistShardItemId#563146L, buf#563561]
Arguments: hashpartitioning(shardId#563145, worklistShardItemId#563146L, 20), ENSURE_REQUIREMENTS, [plan_id=240144]
(43) ObjectHashAggregate
Input [3]: [shardId#563145, worklistShardItemId#563146L, buf#563561]
Keys [2]: [shardId#563145, worklistShardItemId#563146L]
Functions [1]: [collect_list(struct(qty, qty#563147, kpis, kpis#563150), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#563147, kpis, kpis#563150), 0, 0)#563144]
Results [3]: [shardId#563145, worklistShardItemId#563146L, map_from_entries(collect_list(struct(qty, qty#563147, kpis, kpis#563150), 0, 0)#563144) AS quantityKpis#563139]
(44) Sort [codegen id : 12]
Input [3]: [shardId#563145, worklistShardItemId#563146L, quantityKpis#563139]
Arguments: [shardId#563145 ASC NULLS FIRST, worklistShardItemId#563146L ASC NULLS FIRST], false, 0
(45) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#555917, worklistShardItemId#556513L]
Right keys [2]: [shardId#563145, worklistShardItemId#563146L]
Join type: LeftOuter
Join condition: None
(46) Project [codegen id : 13]
Output [36]: [shardId#555917, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, channelStreamSpecificKpis#563138, coalesce(quantityKpis#563139, map(keys: [], values: [])) AS quantityKpis#563151, arrays_zip(constraintLabels#556848, constraintOperators#556849, constraintValues#556850, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#563811]
Input [41]: [shardId#555917, worklistShardItemId#556513L, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, constraintValues#556850, constraintOperators#556849, constraintLabels#556848, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, channelStreamSpecificKpis#563138, shardId#563145, worklistShardItemId#563146L, quantityKpis#563139]
(47) Project
Output [37]: [shardId#555917, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, channelStreamSpecificKpis#563138, quantityKpis#563151, struct(minServiceLevel, array_min(filter(constraintStructArray#563811, lambdafunction((lambda x_1390#563818.constraintLabels = ServiceLevel), lambda x_1390#563818, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#563811, lambdafunction((lambda x_1391#563819.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_1391#563819, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#563811, lambdafunction((lambda x_1392#563820.constraintLabels = RangeOfCoverage), lambda x_1392#563820, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#556847, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#563123, lambdafunction((lambda x_1393#563821.label = NonListingStartTimestamp), lambda x_1393#563821, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#563817, CASE WHEN (qty#556515 <=> quantityAfterProdPlantOptimization#556514) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#556515 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563889.isOrderUnit, lambda x_1394#563889, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563890.isOrderUnit, lambda x_1394#563890, false)), 1, None, false).numerator as double))), qty#556515), orderQuantityUom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563891.isOrderUnit, lambda x_1394#563891, false)), 1, None, false).uom, orderQuantityBaseUom#556845), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563892.isOrderUnit, lambda x_1394#563892, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846), candidateOrderQuantityInBaseUnit, qty#556515, orderQuantityBaseUom, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#556846, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1396#563893.isPreferred AND (((qty#556515 * cast(lambda x_1396#563893.denominator as double)) % cast(lambda x_1396#563893.numerator as double)) = 0.0)), lambda x_1396#563893, false)), lambdafunction(struct(inPreferredQuantity, ((qty#556515 * cast(lambda x_1397#563931.denominator as double)) / cast(lambda x_1397#563931.numerator as double)), uom, lambda x_1397#563931.uom, uomUuid, lambda x_1397#563931.uomUuid), lambda x_1397#563931, false))).inPreferredQuantity, coalesce((qty#556515 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563894.isOrderUnit, lambda x_1395#563894, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563895.isOrderUnit, lambda x_1395#563895, false)), 1, None, false).numerator as double))), qty#556515)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1396#563896.isPreferred AND (((qty#556515 * cast(lambda x_1396#563896.denominator as double)) % cast(lambda x_1396#563896.numerator as double)) = 0.0)), lambda x_1396#563896, false)), lambdafunction(struct(inPreferredQuantity, ((qty#556515 * cast(lambda x_1397#563932.denominator as double)) / cast(lambda x_1397#563932.numerator as double)), uom, lambda x_1397#563932.uom, uomUuid, lambda x_1397#563932.uomUuid), lambda x_1397#563932, false))).uom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563897.isOrderUnit, lambda x_1395#563897, false)), 1, None, false).uom, orderQuantityBaseUom#556845)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1396#563898.isPreferred AND (((qty#556515 * cast(lambda x_1396#563898.denominator as double)) % cast(lambda x_1396#563898.numerator as double)) = 0.0)), lambda x_1396#563898, false)), lambdafunction(struct(inPreferredQuantity, ((qty#556515 * cast(lambda x_1397#563933.denominator as double)) / cast(lambda x_1397#563933.numerator as double)), uom, lambda x_1397#563933.uom, uomUuid, lambda x_1397#563933.uomUuid), lambda x_1397#563933, false))).uomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563899.isOrderUnit, lambda x_1395#563899, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846)), serviceLevel, coalesce(filter(element_at(quantityKpis#563151, qty#556515, None, false), lambdafunction((lambda x_1402#563900.label = ServiceLevel), lambda x_1402#563900, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#556515 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563903.isOrderUnit, lambda x_1394#563903, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563904.isOrderUnit, lambda x_1394#563904, false)), 1, None, false).numerator as double))), qty#556515), orderQuantityUom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563905.isOrderUnit, lambda x_1394#563905, false)), 1, None, false).uom, orderQuantityBaseUom#556845), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1394#563906.isOrderUnit, lambda x_1394#563906, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846), candidateOrderQuantityInBaseUnit, qty#556515, orderQuantityBaseUom, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#556846, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1396#563907.isPreferred AND (((qty#556515 * cast(lambda x_1396#563907.denominator as double)) % cast(lambda x_1396#563907.numerator as double)) = 0.0)), lambda x_1396#563907, false)), lambdafunction(struct(inPreferredQuantity, ((qty#556515 * cast(lambda x_1397#563934.denominator as double)) / cast(lambda x_1397#563934.numerator as double)), uom, lambda x_1397#563934.uom, uomUuid, lambda x_1397#563934.uomUuid), lambda x_1397#563934, false))).inPreferredQuantity, coalesce((qty#556515 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563908.isOrderUnit, lambda x_1395#563908, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563909.isOrderUnit, lambda x_1395#563909, false)), 1, None, false).numerator as double))), qty#556515)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1396#563910.isPreferred AND (((qty#556515 * cast(lambda x_1396#563910.denominator as double)) % cast(lambda x_1396#563910.numerator as double)) = 0.0)), lambda x_1396#563910, false)), lambdafunction(struct(inPreferredQuantity, ((qty#556515 * cast(lambda x_1397#563935.denominator as double)) / cast(lambda x_1397#563935.numerator as double)), uom, lambda x_1397#563935.uom, uomUuid, lambda x_1397#563935.uomUuid), lambda x_1397#563935, false))).uom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563911.isOrderUnit, lambda x_1395#563911, false)), 1, None, false).uom, orderQuantityBaseUom#556845)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1396#563912.isPreferred AND (((qty#556515 * cast(lambda x_1396#563912.denominator as double)) % cast(lambda x_1396#563912.numerator as double)) = 0.0)), lambda x_1396#563912, false)), lambdafunction(struct(inPreferredQuantity, ((qty#556515 * cast(lambda x_1397#563936.denominator as double)) / cast(lambda x_1397#563936.numerator as double)), uom, lambda x_1397#563936.uom, uomUuid, lambda x_1397#563936.uomUuid), lambda x_1397#563936, false))).uomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1395#563913.isOrderUnit, lambda x_1395#563913, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846)), serviceLevel, coalesce(filter(element_at(quantityKpis#563151, qty#556515, None, false), lambdafunction((lambda x_1405#563914.label = ServiceLevel), lambda x_1405#563914, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#556514 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1398#563917.isOrderUnit, lambda x_1398#563917, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1398#563918.isOrderUnit, lambda x_1398#563918, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#556514), orderQuantityUom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1398#563919.isOrderUnit, lambda x_1398#563919, false)), 1, None, false).uom, orderQuantityBaseUom#556845), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1398#563920.isOrderUnit, lambda x_1398#563920, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#556514, orderQuantityBaseUom, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#556846, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1400#563921.isPreferred AND (((quantityAfterProdPlantOptimization#556514 * cast(lambda x_1400#563921.denominator as double)) % cast(lambda x_1400#563921.numerator as double)) = 0.0)), lambda x_1400#563921, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#556514 * cast(lambda x_1401#563937.denominator as double)) / cast(lambda x_1401#563937.numerator as double)), uom, lambda x_1401#563937.uom, uomUuid, lambda x_1401#563937.uomUuid), lambda x_1401#563937, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#556514 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1399#563922.isOrderUnit, lambda x_1399#563922, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1399#563923.isOrderUnit, lambda x_1399#563923, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#556514)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1400#563924.isPreferred AND (((quantityAfterProdPlantOptimization#556514 * cast(lambda x_1400#563924.denominator as double)) % cast(lambda x_1400#563924.numerator as double)) = 0.0)), lambda x_1400#563924, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#556514 * cast(lambda x_1401#563938.denominator as double)) / cast(lambda x_1401#563938.numerator as double)), uom, lambda x_1401#563938.uom, uomUuid, lambda x_1401#563938.uomUuid), lambda x_1401#563938, false))).uom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1399#563925.isOrderUnit, lambda x_1399#563925, false)), 1, None, false).uom, orderQuantityBaseUom#556845)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#556844, lambdafunction((lambda x_1400#563926.isPreferred AND (((quantityAfterProdPlantOptimization#556514 * cast(lambda x_1400#563926.denominator as double)) % cast(lambda x_1400#563926.numerator as double)) = 0.0)), lambda x_1400#563926, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#556514 * cast(lambda x_1401#563939.denominator as double)) / cast(lambda x_1401#563939.numerator as double)), uom, lambda x_1401#563939.uom, uomUuid, lambda x_1401#563939.uomUuid), lambda x_1401#563939, false))).uomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1399#563927.isOrderUnit, lambda x_1399#563927, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846)), serviceLevel, coalesce(filter(element_at(quantityKpis#563151, quantityAfterProdPlantOptimization#556514, None, false), lambdafunction((lambda x_1408#563928.label = ServiceLevel), lambda x_1408#563928, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#563888, coalesce(filter(prodLocSpecificKpis#563123, lambdafunction((lambda x_1411#563941.label = InitialStockQty), lambda x_1411#563941, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#563940, coalesce(filter(prodLocSpecificKpis#563123, lambdafunction((lambda x_1412#563943.label = DemandPeriodEndTimestamp), lambda x_1412#563943, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#563942]
Input [36]: [shardId#555917, quantityAfterProdPlantOptimization#556514, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, minimumOrderQuantity#556847, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, channelStreamSpecificKpis#563138, quantityKpis#563151, constraintStructArray#563811]
(48) Project
Output [21]: [shardId#555917, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, orderProposalItemId#556818, orderProposalItemGroupId#556841, previousOrderProposal#556837L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#556820, supplyingPlant, supplyingPlant#556824, productGroup, productGroup#556825, product, product#556826, plant, plant#556821, supplierSubRange, subrange#556823, sourceOfSupplyUuid, sourceOfSupplyUuid#556831, deliveryDateTime, deliveryDateTime#556822, unitPrice, netPriceAmount#556853, unitPriceCurrency, netPriceCurrencyCode#556854, unitPriceQuantity, ... 37 more fields) AS parentItem#564022]
Input [37]: [shardId#555917, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, availabilityDateTime#556828, nextAvailabilityDateTime#556829, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, netPriceAmount#556853, netPriceCurrencyCode#556854, netPriceQuantity#556855, netPriceQuantityUom#556856, netPriceQuantityUomUuid#556857, sourceOfSupplyUuid#556831, orderProposalItemId#556818, orderProposalItemGroupId#556841, optimizationGroups#556860, measurements#556858, previousOrderProposal#556837L, prodLocSpecificKpis#563123, channelStreamSpecificKpis#563138, quantityKpis#563151, constraintBenchmark#563817, calculationAnalysis#563888, inventoryDateTime#563940, demandPeriodEndDateTime#563942]
(49) Project
Output [12]: [shardId#555917, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, orderDateTime#556827, splitIndicator#556836L, orderProposalItemGroupId#556841, previousOrderProposal#556837L, parentItem#564022, struct(itemId, orderProposalItemId#556818, supplier, supplier#556820, supplyingPlant, supplyingPlant#556824, productGroup, productGroup#556825, product, product#556826, plant, plant#556821, supplierSubRange, subrange#556823, deliveryDateTime, deliveryDateTime#556822, orderQuantity, coalesce((qty#556515 * (cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1436#564056.isOrderUnit, lambda x_1436#564056, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1436#564057.isOrderUnit, lambda x_1436#564057, false)), 1, None, false).numerator as double))), qty#556515), orderQuantityUom, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1436#564058.isOrderUnit, lambda x_1436#564058, false)), 1, None, false).uom, orderQuantityBaseUom#556845), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#556844, lambdafunction(lambda x_1436#564059.isOrderUnit, lambda x_1436#564059, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#556846), orderQuantityInBaseUnit, qty#556515, orderQuantityBaseUom, ... 13 more fields) AS item#564053]
Input [21]: [shardId#555917, qty#556515, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, productGroup#556825, product#556826, plant#556821, subrange#556823, orderDateTime#556827, deliveryDateTime#556822, logisticUnits#556844, orderQuantityBaseUom#556845, orderQuantityBaseUomUuid#556846, splitIndicator#556836L, orderProposalItemId#556818, orderProposalItemGroupId#556841, previousOrderProposal#556837L, parentItem#564022]
(50) ObjectHashAggregate
Input [12]: [shardId#555917, orderProposalId#556817L, originalReplenishmentRunId#556859L, supplierGroup#556819, supplier#556820, supplyingPlant#556824, orderDateTime#556827, splitIndicator#556836L, orderProposalItemGroupId#556841, previousOrderProposal#556837L, parentItem#564022, item#564053]
Keys [4]: [shardId#555917, orderProposalId#556817L, splitIndicator#556836L, orderProposalItemGroupId#556841]
Functions [8]: [partial_max(originalReplenishmentRunId#556859L), partial_max(supplierGroup#556819), partial_max(supplier#556820), partial_max(supplyingPlant#556824), partial_max(orderDateTime#556827), partial_collect_list(parentItem#564022, 0, 0), partial_collect_set(previousOrderProposal#556837L, 0, 0), partial_collect_list(item#564053, 0, 0)]
Aggregate Attributes [8]: [max#568902L, max#568903, max#568904, max#568905, max#568906, buf#565319, buf#568907, buf#565321]
Results [12]: [shardId#555917, orderProposalId#556817L, splitIndicator#556836L, orderProposalItemGroupId#556841, max#568908L, max#568909, max#568910, max#568911, max#568912, buf#565327, buf#568913, buf#565329]
(51) Exchange
Input [12]: [shardId#555917, orderProposalId#556817L, splitIndicator#556836L, orderProposalItemGroupId#556841, max#568908L, max#568909, max#568910, max#568911, max#568912, buf#565327, buf#568913, buf#565329]
Arguments: hashpartitioning(shardId#555917, orderProposalId#556817L, splitIndicator#556836L, orderProposalItemGroupId#556841, 20), ENSURE_REQUIREMENTS, [plan_id=240157]
(52) ObjectHashAggregate
Input [12]: [shardId#555917, orderProposalId#556817L, splitIndicator#556836L, orderProposalItemGroupId#556841, max#568908L, max#568909, max#568910, max#568911, max#568912, buf#565327, buf#568913, buf#565329]
Keys [4]: [shardId#555917, orderProposalId#556817L, splitIndicator#556836L, orderProposalItemGroupId#556841]
Functions [8]: [max(originalReplenishmentRunId#556859L), max(supplierGroup#556819), max(supplier#556820), max(supplyingPlant#556824), max(orderDateTime#556827), collect_list(parentItem#564022, 0, 0), collect_set(previousOrderProposal#556837L, 0, 0), collect_list(item#564053, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#556859L)#564122L, max(supplierGroup#556819)#564123, max(supplier#556820)#564124, max(supplyingPlant#556824)#564125, max(orderDateTime#556827)#564126, collect_list(parentItem#564022, 0, 0)#564127, collect_set(previousOrderProposal#556837L, 0, 0)#564129, collect_list(item#564053, 0, 0)#564128]
Results [10]: [shardId#555917, orderProposalId#556817L, max(originalReplenishmentRunId#556859L)#564122L AS originalReplenishmentRunId#564070L, max(supplierGroup#556819)#564123 AS supplierGroup#564071, max(supplier#556820)#564124 AS supplier#564072, max(supplyingPlant#556824)#564125 AS supplyingPlant#564073, max(orderDateTime#556827)#564126 AS orderDateTime#564074, collect_list(parentItem#564022, 0, 0)#564127 AS parentItems#564075, collect_set(previousOrderProposal#556837L, 0, 0)#564129 AS previousOrderProposals#564077, struct(itemGroupId, coalesce(orderProposalItemGroupId#556841, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#564053, 0, 0)#564128) AS itemGroup#564131]
(53) ObjectHashAggregate
Input [10]: [shardId#555917, orderProposalId#556817L, originalReplenishmentRunId#564070L, supplierGroup#564071, supplier#564072, supplyingPlant#564073, orderDateTime#564074, parentItems#564075, previousOrderProposals#564077, itemGroup#564131]
Keys [2]: [shardId#555917, orderProposalId#556817L]
Functions [8]: [partial_max(originalReplenishmentRunId#564070L), partial_max(supplierGroup#564071), partial_max(supplier#564072), partial_max(supplyingPlant#564073), partial_max(orderDateTime#564074), partial_collect_list(itemGroup#564131, 0, 0), partial_collect_list(parentItems#564075, 0, 0), partial_collect_set(previousOrderProposals#564077, 0, 0)]
Aggregate Attributes [8]: [max#565298L, max#565299, max#565300, max#565301, max#565302, buf#565303, buf#565304, buf#565305]
Results [10]: [shardId#555917, orderProposalId#556817L, max#565306L, max#565307, max#565308, max#565309, max#565310, buf#565311, buf#565312, buf#565313]
(54) Exchange
Input [10]: [shardId#555917, orderProposalId#556817L, max#565306L, max#565307, max#565308, max#565309, max#565310, buf#565311, buf#565312, buf#565313]
Arguments: hashpartitioning(shardId#555917, orderProposalId#556817L, 20), ENSURE_REQUIREMENTS, [plan_id=240160]
(55) ObjectHashAggregate
Input [10]: [shardId#555917, orderProposalId#556817L, max#565306L, max#565307, max#565308, max#565309, max#565310, buf#565311, buf#565312, buf#565313]
Keys [2]: [shardId#555917, orderProposalId#556817L]
Functions [8]: [max(originalReplenishmentRunId#564070L), max(supplierGroup#564071), max(supplier#564072), max(supplyingPlant#564073), max(orderDateTime#564074), collect_list(itemGroup#564131, 0, 0), collect_list(parentItems#564075, 0, 0), collect_set(previousOrderProposals#564077, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#564070L)#564153L, max(supplierGroup#564071)#564154, max(supplier#564072)#564155, max(supplyingPlant#564073)#564156, max(orderDateTime#564074)#564157, collect_list(itemGroup#564131, 0, 0)#564158, collect_list(parentItems#564075, 0, 0)#564159, collect_set(previousOrderProposals#564077, 0, 0)#564160]
Results [10]: [shardId#555917, orderProposalId#556817L, max(originalReplenishmentRunId#564070L)#564153L AS originalReplenishmentRunId#564132L, max(supplierGroup#564071)#564154 AS supplierGroup#564133, max(supplier#564072)#564155 AS supplier#564134, max(supplyingPlant#564073)#564156 AS supplyingPlant#564135, max(orderDateTime#564074)#564157 AS orderDateTime#564136, collect_list(itemGroup#564131, 0, 0)#564158 AS itemGroups#564137, flatten(collect_list(parentItems#564075, 0, 0)#564159) AS parentItems#564138, flatten(collect_set(previousOrderProposals#564077, 0, 0)#564160) AS previousOrderProposals#564139]
(56) Project
Output [2]: [shardId#555917, struct(orderProposalId, orderProposalId#556817L, originalReplenishmentRunId, originalReplenishmentRunId#564132L, supplierGroup, supplierGroup#564133, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#564133) THEN supplier#564134 END, supplyingPlant, supplyingPlant#564135, orderDateTime, orderDateTime#564136, itemGroups, itemGroups#564137, previousOrderProposals, array_distinct(previousOrderProposals#564139), parentItems, parentItems#564138) AS orderProposal#564164]
Input [10]: [shardId#555917, orderProposalId#556817L, originalReplenishmentRunId#564132L, supplierGroup#564133, supplier#564134, supplyingPlant#564135, orderDateTime#564136, itemGroups#564137, parentItems#564138, previousOrderProposals#564139]
(57) Project
Output [11]: [shardId#555917, orderProposal#564164.orderProposalId AS _extract_orderProposalId#568802L, orderProposal#564164.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#568803L, orderProposal#564164.supplierGroup AS _extract_supplierGroup#568804, orderProposal#564164.supplier AS _extract_supplier#568805, orderProposal#564164.supplyingPlant AS _extract_supplyingPlant#568806, orderProposal#564164.orderDateTime AS _extract_orderDateTime#568807, orderProposal#564164.itemGroups AS _extract_itemGroups#568808, orderProposal#564164.previousOrderProposals AS _extract_previousOrderProposals#568809, orderProposal#564164.parentItems AS _extract_parentItems#568810, orderProposal#564164.orderProposalId AS _extract_orderProposalId#568811L]
Input [2]: [shardId#555917, orderProposal#564164]
(58) Exchange
Input [11]: [shardId#555917, _extract_orderProposalId#568802L, _extract_originalReplenishmentRunId#568803L, _extract_supplierGroup#568804, _extract_supplier#568805, _extract_supplyingPlant#568806, _extract_orderDateTime#568807, _extract_itemGroups#568808, _extract_previousOrderProposals#568809, _extract_parentItems#568810, _extract_orderProposalId#568811L]
Arguments: hashpartitioning(coalesce(shardId#555917, ), isnull(shardId#555917), coalesce(_extract_orderProposalId#568811L, 0), isnull(_extract_orderProposalId#568811L), 20), ENSURE_REQUIREMENTS, [plan_id=240164]
(59) Sort
Input [11]: [shardId#555917, _extract_orderProposalId#568802L, _extract_originalReplenishmentRunId#568803L, _extract_supplierGroup#568804, _extract_supplier#568805, _extract_supplyingPlant#568806, _extract_orderDateTime#568807, _extract_itemGroups#568808, _extract_previousOrderProposals#568809, _extract_parentItems#568810, _extract_orderProposalId#568811L]
Arguments: [coalesce(shardId#555917, ) ASC NULLS FIRST, isnull(shardId#555917) ASC NULLS FIRST, coalesce(_extract_orderProposalId#568811L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#568811L) ASC NULLS FIRST], false, 0
(60) Scan ExistingRDD [codegen id : 14]
Output [7]: [shardId#564187, orderProposalId#564188L, items#564189, optimizationGroups#564190, isOptimal#564191, lastModified#564192, optimizationInsights#564193]
Arguments: [shardId#564187, orderProposalId#564188L, items#564189, optimizationGroups#564190, isOptimal#564191, lastModified#564192, optimizationInsights#564193], MapPartitionsRDD[26501] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(61) Filter [codegen id : 14]
Input [7]: [shardId#564187, orderProposalId#564188L, items#564189, optimizationGroups#564190, isOptimal#564191, lastModified#564192, optimizationInsights#564193]
Condition : ((isnotnull(shardId#564187) AND (shardId#564187 = 0_1_10000002107)) AND isnotnull(orderProposalId#564188L))
(62) Project [codegen id : 14]
Output [3]: [shardId#564187, orderProposalId#564188L, optimizationGroups#564190]
Input [7]: [shardId#564187, orderProposalId#564188L, items#564189, optimizationGroups#564190, isOptimal#564191, lastModified#564192, optimizationInsights#564193]
(63) Exchange
Input [3]: [shardId#564187, orderProposalId#564188L, optimizationGroups#564190]
Arguments: hashpartitioning(orderProposalId#564188L, 20), ENSURE_REQUIREMENTS, [plan_id=240167]
(64) Sort [codegen id : 15]
Input [3]: [shardId#564187, orderProposalId#564188L, optimizationGroups#564190]
Arguments: [orderProposalId#564188L ASC NULLS FIRST], false, 0
(65) Scan ExistingRDD [codegen id : 18]
Output [7]: [shardId#563804, orderProposalId#563805L, items#563806, optimizationGroups#563807, isOptimal#563808, lastModified#563809, optimizationInsights#563810]
Arguments: [shardId#563804, orderProposalId#563805L, items#563806, optimizationGroups#563807, isOptimal#563808, lastModified#563809, optimizationInsights#563810], MapPartitionsRDD[26501] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(66) Filter [codegen id : 18]
Input [7]: [shardId#563804, orderProposalId#563805L, items#563806, optimizationGroups#563807, isOptimal#563808, lastModified#563809, optimizationInsights#563810]
Condition : ((isnotnull(shardId#563804) AND (shardId#563804 = 0_1_10000002107)) AND ((size(items#563806.worklistShardItemId, true) > 0) AND isnotnull(items#563806.worklistShardItemId)))
(67) Project [codegen id : 18]
Output [1]: [items#563806.worklistShardItemId AS _extract_worklistShardItemId#568637]
Input [7]: [shardId#563804, orderProposalId#563805L, items#563806, optimizationGroups#563807, isOptimal#563808, lastModified#563809, optimizationInsights#563810]
(68) Generate [codegen id : 18]
Input [1]: [_extract_worklistShardItemId#568637]
Arguments: explode(_extract_worklistShardItemId#568637), false, [item#564194L]
(69) Project [codegen id : 18]
Output [1]: [item#564194L AS worklistShardItemId#564195L]
Input [1]: [item#564194L]
(70) Scan parquet
Output [5]: [orderProposalId#564243L, isFallbackOrderOnly#564260, worklistShardItemId#564266L, shardId#564287, sequenceId#564265]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/internal/prod-plant-snapshot/10000002107]
PartitionFilters: [isnotnull(shardId#564287), isnotnull(sequenceId#564265), (shardId#564287 = 0_1_10000002107), (sequenceId#564265 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(71) ColumnarToRow [codegen id : 16]
Input [5]: [orderProposalId#564243L, isFallbackOrderOnly#564260, worklistShardItemId#564266L, shardId#564287, sequenceId#564265]
(72) Filter [codegen id : 16]
Input [5]: [orderProposalId#564243L, isFallbackOrderOnly#564260, worklistShardItemId#564266L, shardId#564287, sequenceId#564265]
Condition : ((isnotnull(worklistShardItemId#564266L) AND NOT (isFallbackOrderOnly#564260 <=> true)) AND isnotnull(orderProposalId#564243L))
(73) Project [codegen id : 16]
Output [2]: [orderProposalId#564243L, worklistShardItemId#564266L]
Input [5]: [orderProposalId#564243L, isFallbackOrderOnly#564260, worklistShardItemId#564266L, shardId#564287, sequenceId#564265]
(74) Exchange
Input [2]: [orderProposalId#564243L, worklistShardItemId#564266L]
Arguments: hashpartitioning(worklistShardItemId#564266L, 20), REPARTITION_BY_NUM, [plan_id=240177]
(75) Project [codegen id : 17]
Output [2]: [worklistShardItemId#564266L, orderProposalId#564243L]
Input [2]: [orderProposalId#564243L, worklistShardItemId#564266L]
(76) BroadcastExchange
Input [2]: [worklistShardItemId#564266L, orderProposalId#564243L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=240181]
(77) BroadcastHashJoin [codegen id : 18]
Left keys [1]: [worklistShardItemId#564195L]
Right keys [1]: [worklistShardItemId#564266L]
Join type: Inner
Join condition: None
(78) Project [codegen id : 18]
Output [1]: [orderProposalId#564243L]
Input [3]: [worklistShardItemId#564195L, worklistShardItemId#564266L, orderProposalId#564243L]
(79) HashAggregate [codegen id : 18]
Input [1]: [orderProposalId#564243L]
Keys [1]: [orderProposalId#564243L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#564243L]
(80) Exchange
Input [1]: [orderProposalId#564243L]
Arguments: hashpartitioning(orderProposalId#564243L, 20), ENSURE_REQUIREMENTS, [plan_id=240187]
(81) HashAggregate [codegen id : 19]
Input [1]: [orderProposalId#564243L]
Keys [1]: [orderProposalId#564243L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#564243L]
(82) Sort [codegen id : 19]
Input [1]: [orderProposalId#564243L]
Arguments: [orderProposalId#564243L ASC NULLS FIRST], false, 0
(83) SortMergeJoin [codegen id : 20]
Left keys [1]: [orderProposalId#564188L]
Right keys [1]: [orderProposalId#564243L]
Join type: Inner
Join condition: None
(84) Project
Output [3]: [orderProposalId#564188L, shardId#564187, coalesce(transform(optimizationGroups#564190, lambdafunction(struct(optGroupId, lambda x_1440#564185.optGroupId, minOrderProfile, lambda x_1440#564185.minOrderProfile, assignmentDetails, lambda x_1440#564185.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_1440#564185.minOrderGoal.dimensionType, unit, lambda x_1440#564185.minOrderGoal.unit, unitUuid, lambda x_1440#564185.minOrderGoal.unitUuid, goalValue, lambda x_1440#564185.minOrderGoal.minOrderValue, calcValue, lambda x_1440#564185.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_1440#564185, false)), []) AS optimizationGroups#564184]
Input [4]: [shardId#564187, orderProposalId#564188L, optimizationGroups#564190, orderProposalId#564243L]
(85) Exchange
Input [3]: [orderProposalId#564188L, shardId#564187, optimizationGroups#564184]
Arguments: hashpartitioning(coalesce(shardId#564187, ), isnull(shardId#564187), coalesce(orderProposalId#564188L, 0), isnull(orderProposalId#564188L), 20), ENSURE_REQUIREMENTS, [plan_id=240196]
(86) Sort [codegen id : 21]
Input [3]: [orderProposalId#564188L, shardId#564187, optimizationGroups#564184]
Arguments: [coalesce(shardId#564187, ) ASC NULLS FIRST, isnull(shardId#564187) ASC NULLS FIRST, coalesce(orderProposalId#564188L, 0) ASC NULLS FIRST, isnull(orderProposalId#564188L) ASC NULLS FIRST], false, 0
(87) SortMergeJoin
Left keys [4]: [coalesce(shardId#555917, ), isnull(shardId#555917), coalesce(_extract_orderProposalId#568811L, 0), isnull(_extract_orderProposalId#568811L)]
Right keys [4]: [coalesce(shardId#564187, ), isnull(shardId#564187), coalesce(orderProposalId#564188L, 0), isnull(orderProposalId#564188L)]
Join type: LeftOuter
Join condition: None
(88) Project
Output [3]: [shardId#555917, named_struct(orderProposalId, _extract_orderProposalId#568811L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#568803L, supplierGroup, _extract_supplierGroup#568804, optimizationGroups, coalesce(optimizationGroups#564184, []), supplier, _extract_supplier#568805, supplyingPlant, _extract_supplyingPlant#568806, orderDateTime, _extract_orderDateTime#568807, itemGroups, _extract_itemGroups#568808, previousOrderProposals, _extract_previousOrderProposals#568809, parentItems, _extract_parentItems#568810) AS orderProposal#564291, CASE WHEN (size(_extract_parentItems#568810, true) > 2000) THEN xxhash64(_extract_orderProposalId#568811L, 42) ELSE xxhash64(pmod(cast(_extract_orderProposalId#568811L as decimal(20,0)), 1), 42) END AS resultSeparationId#568622L]
Input [14]: [shardId#555917, _extract_orderProposalId#568802L, _extract_originalReplenishmentRunId#568803L, _extract_supplierGroup#568804, _extract_supplier#568805, _extract_supplyingPlant#568806, _extract_orderDateTime#568807, _extract_itemGroups#568808, _extract_previousOrderProposals#568809, _extract_parentItems#568810, _extract_orderProposalId#568811L, orderProposalId#564188L, shardId#564187, optimizationGroups#564184]
(89) ObjectHashAggregate
Input [3]: [shardId#555917, orderProposal#564291, resultSeparationId#568622L]
Keys [2]: [shardId#555917, resultSeparationId#568622L]
Functions [1]: [partial_collect_list(orderProposal#564291, 0, 0)]
Aggregate Attributes [1]: [buf#568812]
Results [3]: [shardId#555917, resultSeparationId#568622L, buf#568813]
(90) Exchange
Input [3]: [shardId#555917, resultSeparationId#568622L, buf#568813]
Arguments: hashpartitioning(shardId#555917, resultSeparationId#568622L, 20), ENSURE_REQUIREMENTS, [plan_id=240203]
(91) ObjectHashAggregate
Input [3]: [shardId#555917, resultSeparationId#568622L, buf#568813]
Keys [2]: [shardId#555917, resultSeparationId#568622L]
Functions [1]: [collect_list(orderProposal#564291, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#564291, 0, 0)#568630]
Results [3]: [shardId#555917, resultSeparationId#568622L, collect_list(orderProposal#564291, 0, 0)#568630 AS orderProposals#568626]
(92) Exchange
Input [3]: [shardId#555917, resultSeparationId#568622L, orderProposals#568626]
Arguments: SinglePartition, REPARTITION_BY_NUM, [plan_id=240447]
(93) Project
Output [2]: [shardId#555917, orderProposals#568626]
Input [3]: [shardId#555917, resultSeparationId#568622L, orderProposals#568626]
(94) HashAggregate [codegen id : 1]
Input [1]: [shardId#555917]
Keys [1]: [shardId#555917]
Functions: []
Aggregate Attributes: []
Results [1]: [shardId#555917]
(95) HashAggregate [codegen id : 1]
Input [1]: [shardId#555917]
Keys [1]: [shardId#555917]
Functions: []
Aggregate Attributes: []
Results [1]: [shardId#555917]