== Physical Plan ==
* HashAggregate (104)
+- Exchange (103)
+- * HashAggregate (102)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- ObjectHashAggregate (101)
+- Exchange (100)
+- ObjectHashAggregate (99)
+- Project (98)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- Project (97)
+- SortMergeJoin LeftOuter (96)
:- Sort (69)
: +- Exchange (68)
: +- Project (67)
: +- Project (66)
: +- ObjectHashAggregate (65)
: +- Exchange (64)
: +- ObjectHashAggregate (63)
: +- ObjectHashAggregate (62)
: +- Exchange (61)
: +- ObjectHashAggregate (60)
: +- Project (59)
: +- Project (58)
: +- Project (57)
: +- * Project (56)
: +- * Filter (55)
: +- InMemoryTableScan (5)
: +- InMemoryRelation (6)
: +- * Project (54)
: +- * SortMergeJoin LeftOuter (53)
: :- * Project (45)
: : +- * SortMergeJoin LeftOuter (44)
: : :- * Project (36)
: : : +- * SortMergeJoin LeftOuter (35)
: : : :- * Sort (29)
: : : : +- Exchange (28)
: : : : +- * Project (27)
: : : : +- * SortMergeJoin LeftOuter (26)
: : : : :- * Sort (18)
: : : : : +- Exchange (17)
: : : : : +- * Project (16)
: : : : : +- * Generate (15)
: : : : : +- * Filter (14)
: : : : : +- InMemoryTableScan (7)
: : : : : +- InMemoryRelation (8)
: : : : : +- * Filter (13)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (12)
: : : : : +- * Scan ExistingRDD (11)
: : : : +- * Sort (25)
: : : : +- * Project (24)
: : : : +- Exchange (23)
: : : : +- * Project (22)
: : : : +- * Filter (21)
: : : : +- * ColumnarToRow (20)
: : : : +- Scan parquet (19)
: : : +- * Sort (34)
: : : +- Exchange (33)
: : : +- * Project (32)
: : : +- * Filter (31)
: : : +- * Scan ExistingRDD (30)
: : +- * Sort (43)
: : +- ObjectHashAggregate (42)
: : +- Exchange (41)
: : +- ObjectHashAggregate (40)
: : +- * Project (39)
: : +- * Filter (38)
: : +- * Scan ExistingRDD (37)
: +- * Sort (52)
: +- ObjectHashAggregate (51)
: +- Exchange (50)
: +- ObjectHashAggregate (49)
: +- * Project (48)
: +- * Filter (47)
: +- * Scan ExistingRDD (46)
+- * Sort (95)
+- Exchange (94)
+- Project (93)
+- * BroadcastHashJoin Inner BuildLeft (92)
:- BroadcastExchange (73)
: +- * Filter (72)
: +- InMemoryTableScan (70)
: +- InMemoryRelation (71)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * HashAggregate (91)
+- Exchange (90)
+- * HashAggregate (89)
+- * Project (88)
+- * BroadcastHashJoin Inner BuildLeft (87)
:- BroadcastExchange (80)
: +- * Project (79)
: +- * Generate (78)
: +- * Project (77)
: +- * Filter (76)
: +- InMemoryTableScan (74)
: +- InMemoryRelation (75)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * Project (86)
+- Exchange (85)
+- * Project (84)
+- * Filter (83)
+- * ColumnarToRow (82)
+- Scan parquet (81)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#803008, resultSeparationId#806921L, orderProposals#806925], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#805169, shardId#803008]
Arguments: [orderProposal#805169, shardId#803008]
(4) InMemoryRelation
Arguments: [shardId#803008, orderProposal#805169], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#803698, channelStreamSpecificKpis#804262, constraintLabels#803710, constraintOperators#803711, constraintValues#803713, deliveryDateTime#803697, isFallbackOrderOnly#803700, logisticUnits#803715, measurements#803708, minimumOrderQuantity#803709, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, nextAvailabilityDateTime#803699, optimizationGroups#803716, orderDateTime#803696, orderProposalId#803678L, orderProposalItemGroupId#803680, orderProposalItemId#803679, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, originalReplenishmentRunId#803681L, plant#803692, previousOrderProposal#803684L, prodLocSpecificKpis#804247, product#803691, productGroup#803720, qty#803522, quantityAfterProdPlantOptimization#803521, quantityKpis#804275, shardId#803008, sourceOfSupplyUuid#803687, splitIndicator#803683L, subrange#803690, supplier#803689, supplierGroup#803688, supplyingPlant#803719]
Arguments: [availabilityDateTime#803698, channelStreamSpecificKpis#804262, constraintLabels#803710, constraintOperators#803711, constraintValues#803713, deliveryDateTime#803697, isFallbackOrderOnly#803700, logisticUnits#803715, measurements#803708, minimumOrderQuantity#803709, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, nextAvailabilityDateTime#803699, optimizationGroups#803716, orderDateTime#803696, orderProposalId#803678L, orderProposalItemGroupId#803680, orderProposalItemId#803679, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, originalReplenishmentRunId#803681L, plant#803692, ... 14 more fields], [NOT (isFallbackOrderOnly#803700 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, availabilityDateTime#803698, nextAvailabilityDateTime#803699, constraintValues#803713, constraintOperators#803711, constraintLabels#803710, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, netPriceAmount#803706, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#803008, items#803010]
Arguments: [shardId#803008, items#803010], [(size(items#803010, true) > 0), isnotnull(items#803010)]
(8) InMemoryRelation
Arguments: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, optimizationInsights#803014], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, optimizationInsights#803014]
Arguments: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, optimizationInsights#803014], [isnotnull(shardId#803008), (shardId#803008 = 0_1_10000002108)]
(10) InMemoryRelation
Arguments: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, lastModified#803013, optimizationInsights#803014], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, lastModified#803013, optimizationInsights#803014]
Arguments: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, lastModified#803013, optimizationInsights#803014], MapPartitionsRDD[37720] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, lastModified#803013, optimizationInsights#803014]
Condition : (isnotnull(shardId#803008) AND (shardId#803008 = 0_1_10000002108))
(13) Filter [codegen id : 1]
Input [6]: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, optimizationInsights#803014]
Condition : (isnotnull(shardId#803008) AND (shardId#803008 = 0_1_10000002108))
(14) Filter [codegen id : 1]
Input [2]: [shardId#803008, items#803010]
Condition : ((size(items#803010, true) > 0) AND isnotnull(items#803010))
(15) Generate [codegen id : 1]
Input [2]: [shardId#803008, items#803010]
Arguments: explode(items#803010), [shardId#803008], false, [item#803519]
(16) Project [codegen id : 1]
Output [4]: [shardId#803008, item#803519.worklistShardItemId AS worklistShardItemId#803520L, item#803519.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#803521, item#803519.qty AS qty#803522]
Input [2]: [shardId#803008, item#803519]
(17) Exchange
Input [4]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522]
Arguments: hashpartitioning(worklistShardItemId#803520L, 20), ENSURE_REQUIREMENTS, [plan_id=316013]
(18) Sort [codegen id : 2]
Input [4]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522]
Arguments: [worklistShardItemId#803520L ASC NULLS FIRST], false, 0
(19) Scan parquet
Output [38]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764, shardId#803765, sequenceId#803743]
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/10000002108]
PartitionFilters: [isnotnull(shardId#803765), isnotnull(sequenceId#803743), (shardId#803765 = 0_1_10000002108), (sequenceId#803743 = 2)]
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,externalProductId:string,externalPlantId: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>>
(20) ColumnarToRow [codegen id : 3]
Input [38]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764, shardId#803765, sequenceId#803743]
(21) Filter [codegen id : 3]
Input [38]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764, shardId#803765, sequenceId#803743]
Condition : isnotnull(worklistShardItemId#803744L)
(22) Project [codegen id : 3]
Output [36]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764]
Input [38]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764, shardId#803765, sequenceId#803743]
(23) Exchange
Input [36]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764]
Arguments: hashpartitioning(worklistShardItemId#803744L, 20), REPARTITION_BY_NUM, [plan_id=316023]
(24) Project [codegen id : 4]
Output [36]: [worklistShardItemId#803744L, orderProposalId#803721L, orderProposalItemId#803722, orderProposalItemGroupId#803745, originalReplenishmentRunId#803763L, splitIndicator#803740L, previousOrderProposal#803741L, sourceOfSupplyUuid#803735, supplierGroup#803723, supplier#803724, subrange#803727, product#803730, plant#803725, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, isFallbackOrderOnly#803738, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, netPriceAmount#803757, netPriceCurrencyCode#803758, measurements#803762, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, logisticUnits#803748, optimizationGroups#803764, externalProductId#803746, externalPlantId#803747, supplyingPlant#803728, productGroup#803729]
Input [36]: [orderProposalId#803721L, orderProposalItemId#803722, supplierGroup#803723, supplier#803724, plant#803725, deliveryDateTime#803726, subrange#803727, supplyingPlant#803728, productGroup#803729, product#803730, orderDateTime#803731, availabilityDateTime#803732, nextAvailabilityDateTime#803733, sourceOfSupplyUuid#803735, isFallbackOrderOnly#803738, splitIndicator#803740L, previousOrderProposal#803741L, worklistShardItemId#803744L, orderProposalItemGroupId#803745, externalProductId#803746, externalPlantId#803747, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, measurements#803762, originalReplenishmentRunId#803763L, optimizationGroups#803764]
(25) Sort [codegen id : 4]
Input [36]: [worklistShardItemId#803744L, orderProposalId#803721L, orderProposalItemId#803722, orderProposalItemGroupId#803745, originalReplenishmentRunId#803763L, splitIndicator#803740L, previousOrderProposal#803741L, sourceOfSupplyUuid#803735, supplierGroup#803723, supplier#803724, subrange#803727, product#803730, plant#803725, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, isFallbackOrderOnly#803738, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, netPriceAmount#803757, netPriceCurrencyCode#803758, measurements#803762, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, logisticUnits#803748, optimizationGroups#803764, externalProductId#803746, externalPlantId#803747, supplyingPlant#803728, productGroup#803729]
Arguments: [worklistShardItemId#803744L ASC NULLS FIRST], false, 0
(26) SortMergeJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#803520L]
Right keys [1]: [worklistShardItemId#803744L]
Join type: LeftOuter
Join condition: (shardId#803008 = 0_1_10000002108)
(27) Project [codegen id : 5]
Output [39]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738]
Input [40]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, worklistShardItemId#803744L, orderProposalId#803721L, orderProposalItemId#803722, orderProposalItemGroupId#803745, originalReplenishmentRunId#803763L, splitIndicator#803740L, previousOrderProposal#803741L, sourceOfSupplyUuid#803735, supplierGroup#803723, supplier#803724, subrange#803727, product#803730, plant#803725, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, isFallbackOrderOnly#803738, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, netPriceAmount#803757, netPriceCurrencyCode#803758, measurements#803762, minimumOrderQuantity#803751, constraintLabels#803752, constraintOperators#803753, constraintValues#803754, logisticUnits#803748, optimizationGroups#803764, externalProductId#803746, externalPlantId#803747, supplyingPlant#803728, productGroup#803729]
(28) Exchange
Input [39]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738]
Arguments: hashpartitioning(shardId#803008, worklistShardItemId#803520L, 20), ENSURE_REQUIREMENTS, [plan_id=316032]
(29) Sort [codegen id : 6]
Input [39]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738]
Arguments: [shardId#803008 ASC NULLS FIRST, worklistShardItemId#803520L ASC NULLS FIRST], false, 0
(30) Scan ExistingRDD [codegen id : 7]
Output [6]: [shardId#804240, worklistShardItemId#804241L, qty#804242, demandChannel#804243, demandStream#804244, kpis#804245]
Arguments: [shardId#804240, worklistShardItemId#804241L, qty#804242, demandChannel#804243, demandStream#804244, kpis#804245], MapPartitionsRDD[37780] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(31) Filter [codegen id : 7]
Input [6]: [shardId#804240, worklistShardItemId#804241L, qty#804242, demandChannel#804243, demandStream#804244, kpis#804245]
Condition : (((isnull(qty#804242) AND isnull(demandChannel#804243)) AND isnull(demandStream#804244)) AND (isnotnull(shardId#804240) AND isnotnull(worklistShardItemId#804241L)))
(32) Project [codegen id : 7]
Output [3]: [shardId#804240, worklistShardItemId#804241L, coalesce(kpis#804245, []) AS prodLocSpecificKpis#804246]
Input [6]: [shardId#804240, worklistShardItemId#804241L, qty#804242, demandChannel#804243, demandStream#804244, kpis#804245]
(33) Exchange
Input [3]: [shardId#804240, worklistShardItemId#804241L, prodLocSpecificKpis#804246]
Arguments: hashpartitioning(shardId#804240, worklistShardItemId#804241L, 20), ENSURE_REQUIREMENTS, [plan_id=316038]
(34) Sort [codegen id : 8]
Input [3]: [shardId#804240, worklistShardItemId#804241L, prodLocSpecificKpis#804246]
Arguments: [shardId#804240 ASC NULLS FIRST, worklistShardItemId#804241L ASC NULLS FIRST], false, 0
(35) SortMergeJoin [codegen id : 9]
Left keys [2]: [shardId#803008, worklistShardItemId#803520L]
Right keys [2]: [shardId#804240, worklistShardItemId#804241L]
Join type: LeftOuter
Join condition: None
(36) Project [codegen id : 9]
Output [40]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738, coalesce(prodLocSpecificKpis#804246, []) AS prodLocSpecificKpis#804247]
Input [42]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738, shardId#804240, worklistShardItemId#804241L, prodLocSpecificKpis#804246]
(37) Scan ExistingRDD [codegen id : 10]
Output [6]: [shardId#804256, worklistShardItemId#804257L, qty#804258, demandChannel#804259, demandStream#804260, kpis#804261]
Arguments: [shardId#804256, worklistShardItemId#804257L, qty#804258, demandChannel#804259, demandStream#804260, kpis#804261], MapPartitionsRDD[37780] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(38) Filter [codegen id : 10]
Input [6]: [shardId#804256, worklistShardItemId#804257L, qty#804258, demandChannel#804259, demandStream#804260, kpis#804261]
Condition : ((((isnull(qty#804258) AND isnotnull(demandChannel#804259)) AND isnotnull(demandStream#804260)) AND (size(kpis#804261, true) > 0)) AND (isnotnull(shardId#804256) AND isnotnull(worklistShardItemId#804257L)))
(39) Project [codegen id : 10]
Output [5]: [shardId#804256, worklistShardItemId#804257L, demandChannel#804259, demandStream#804260, kpis#804261]
Input [6]: [shardId#804256, worklistShardItemId#804257L, qty#804258, demandChannel#804259, demandStream#804260, kpis#804261]
(40) ObjectHashAggregate
Input [5]: [shardId#804256, worklistShardItemId#804257L, demandChannel#804259, demandStream#804260, kpis#804261]
Keys [2]: [shardId#804256, worklistShardItemId#804257L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#804259, demandStream, demandStream#804260, kpis, kpis#804261), 0, 0)]
Aggregate Attributes [1]: [buf#804436]
Results [3]: [shardId#804256, worklistShardItemId#804257L, buf#804437]
(41) Exchange
Input [3]: [shardId#804256, worklistShardItemId#804257L, buf#804437]
Arguments: hashpartitioning(shardId#804256, worklistShardItemId#804257L, 20), ENSURE_REQUIREMENTS, [plan_id=316049]
(42) ObjectHashAggregate
Input [3]: [shardId#804256, worklistShardItemId#804257L, buf#804437]
Keys [2]: [shardId#804256, worklistShardItemId#804257L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#804259, demandStream, demandStream#804260, kpis, kpis#804261), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#804259, demandStream, demandStream#804260, kpis, kpis#804261), 0, 0)#804255]
Results [3]: [shardId#804256, worklistShardItemId#804257L, collect_list(struct(demandChannel, demandChannel#804259, demandStream, demandStream#804260, kpis, kpis#804261), 0, 0)#804255 AS channelStreamSpecificKpis#804248]
(43) Sort [codegen id : 11]
Input [3]: [shardId#804256, worklistShardItemId#804257L, channelStreamSpecificKpis#804248]
Arguments: [shardId#804256 ASC NULLS FIRST, worklistShardItemId#804257L ASC NULLS FIRST], false, 0
(44) SortMergeJoin [codegen id : 12]
Left keys [2]: [shardId#803008, worklistShardItemId#803520L]
Right keys [2]: [shardId#804256, worklistShardItemId#804257L]
Join type: LeftOuter
Join condition: None
(45) Project [codegen id : 12]
Output [41]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738, prodLocSpecificKpis#804247, coalesce(channelStreamSpecificKpis#804248, []) AS channelStreamSpecificKpis#804262]
Input [43]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738, prodLocSpecificKpis#804247, shardId#804256, worklistShardItemId#804257L, channelStreamSpecificKpis#804248]
(46) Scan ExistingRDD [codegen id : 13]
Output [6]: [shardId#804269, worklistShardItemId#804270L, qty#804271, demandChannel#804272, demandStream#804273, kpis#804274]
Arguments: [shardId#804269, worklistShardItemId#804270L, qty#804271, demandChannel#804272, demandStream#804273, kpis#804274], MapPartitionsRDD[37780] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(47) Filter [codegen id : 13]
Input [6]: [shardId#804269, worklistShardItemId#804270L, qty#804271, demandChannel#804272, demandStream#804273, kpis#804274]
Condition : ((isnotnull(qty#804271) AND isnotnull(kpis#804274)) AND (isnotnull(shardId#804269) AND isnotnull(worklistShardItemId#804270L)))
(48) Project [codegen id : 13]
Output [4]: [shardId#804269, worklistShardItemId#804270L, qty#804271, kpis#804274]
Input [6]: [shardId#804269, worklistShardItemId#804270L, qty#804271, demandChannel#804272, demandStream#804273, kpis#804274]
(49) ObjectHashAggregate
Input [4]: [shardId#804269, worklistShardItemId#804270L, qty#804271, kpis#804274]
Keys [2]: [shardId#804269, worklistShardItemId#804270L]
Functions [1]: [partial_collect_list(struct(qty, qty#804271, kpis, kpis#804274), 0, 0)]
Aggregate Attributes [1]: [buf#804438]
Results [3]: [shardId#804269, worklistShardItemId#804270L, buf#804439]
(50) Exchange
Input [3]: [shardId#804269, worklistShardItemId#804270L, buf#804439]
Arguments: hashpartitioning(shardId#804269, worklistShardItemId#804270L, 20), ENSURE_REQUIREMENTS, [plan_id=316061]
(51) ObjectHashAggregate
Input [3]: [shardId#804269, worklistShardItemId#804270L, buf#804439]
Keys [2]: [shardId#804269, worklistShardItemId#804270L]
Functions [1]: [collect_list(struct(qty, qty#804271, kpis, kpis#804274), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#804271, kpis, kpis#804274), 0, 0)#804268]
Results [3]: [shardId#804269, worklistShardItemId#804270L, map_from_entries(collect_list(struct(qty, qty#804271, kpis, kpis#804274), 0, 0)#804268) AS quantityKpis#804263]
(52) Sort [codegen id : 14]
Input [3]: [shardId#804269, worklistShardItemId#804270L, quantityKpis#804263]
Arguments: [shardId#804269 ASC NULLS FIRST, worklistShardItemId#804270L ASC NULLS FIRST], false, 0
(53) SortMergeJoin [codegen id : 15]
Left keys [2]: [shardId#803008, worklistShardItemId#803520L]
Right keys [2]: [shardId#804269, worklistShardItemId#804270L]
Join type: LeftOuter
Join condition: None
(54) Project [codegen id : 15]
Output [42]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738, prodLocSpecificKpis#804247, channelStreamSpecificKpis#804262, coalesce(quantityKpis#804263, map(keys: [], values: [])) AS quantityKpis#804275]
Input [44]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803721L, originalReplenishmentRunId#803763L, supplierGroup#803723, supplier#803724, supplyingPlant#803728, productGroup#803729, product#803730, plant#803725, subrange#803727, orderDateTime#803731, deliveryDateTime#803726, availabilityDateTime#803732, nextAvailabilityDateTime#803733, constraintValues#803754, constraintOperators#803753, constraintLabels#803752, logisticUnits#803748, orderQuantityBaseUom#803749, orderQuantityBaseUomUuid#803750, splitIndicator#803740L, netPriceAmount#803757, netPriceCurrencyCode#803758, netPriceQuantity#803759, netPriceQuantityUom#803760, netPriceQuantityUomUuid#803761, sourceOfSupplyUuid#803735, minimumOrderQuantity#803751, orderProposalItemId#803722, orderProposalItemGroupId#803745, optimizationGroups#803764, measurements#803762, externalProductId#803746, externalPlantId#803747, previousOrderProposal#803741L, isFallbackOrderOnly#803738, prodLocSpecificKpis#804247, channelStreamSpecificKpis#804262, shardId#804269, worklistShardItemId#804270L, quantityKpis#804263]
(55) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#803698, channelStreamSpecificKpis#804262, constraintLabels#803710, constraintOperators#803711, constraintValues#803713, deliveryDateTime#803697, isFallbackOrderOnly#803700, logisticUnits#803715, measurements#803708, minimumOrderQuantity#803709, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, nextAvailabilityDateTime#803699, optimizationGroups#803716, orderDateTime#803696, orderProposalId#803678L, orderProposalItemGroupId#803680, orderProposalItemId#803679, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, originalReplenishmentRunId#803681L, plant#803692, previousOrderProposal#803684L, prodLocSpecificKpis#804247, product#803691, productGroup#803720, qty#803522, quantityAfterProdPlantOptimization#803521, quantityKpis#804275, shardId#803008, sourceOfSupplyUuid#803687, splitIndicator#803683L, subrange#803690, supplier#803689, supplierGroup#803688, supplyingPlant#803719]
Condition : NOT (isFallbackOrderOnly#803700 <=> true)
(56) Project [codegen id : 1]
Output [36]: [shardId#803008, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, availabilityDateTime#803698, nextAvailabilityDateTime#803699, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, sourceOfSupplyUuid#803687, minimumOrderQuantity#803709, orderProposalItemId#803679, orderProposalItemGroupId#803680, optimizationGroups#803716, measurements#803708, previousOrderProposal#803684L, prodLocSpecificKpis#804247, channelStreamSpecificKpis#804262, quantityKpis#804275, arrays_zip(constraintLabels#803710, constraintOperators#803711, constraintValues#803713, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#804689]
Input [39]: [availabilityDateTime#803698, channelStreamSpecificKpis#804262, constraintLabels#803710, constraintOperators#803711, constraintValues#803713, deliveryDateTime#803697, isFallbackOrderOnly#803700, logisticUnits#803715, measurements#803708, minimumOrderQuantity#803709, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, nextAvailabilityDateTime#803699, optimizationGroups#803716, orderDateTime#803696, orderProposalId#803678L, orderProposalItemGroupId#803680, orderProposalItemId#803679, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, originalReplenishmentRunId#803681L, plant#803692, previousOrderProposal#803684L, prodLocSpecificKpis#804247, product#803691, productGroup#803720, qty#803522, quantityAfterProdPlantOptimization#803521, quantityKpis#804275, shardId#803008, sourceOfSupplyUuid#803687, splitIndicator#803683L, subrange#803690, supplier#803689, supplierGroup#803688, supplyingPlant#803719]
(57) Project
Output [37]: [shardId#803008, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, availabilityDateTime#803698, nextAvailabilityDateTime#803699, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, sourceOfSupplyUuid#803687, orderProposalItemId#803679, orderProposalItemGroupId#803680, optimizationGroups#803716, measurements#803708, previousOrderProposal#803684L, prodLocSpecificKpis#804247, channelStreamSpecificKpis#804262, quantityKpis#804275, struct(minServiceLevel, array_min(filter(constraintStructArray#804689, lambdafunction((lambda x_2082#804696.constraintLabels = ServiceLevel), lambda x_2082#804696, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#804689, lambdafunction((lambda x_2083#804697.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_2083#804697, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#804689, lambdafunction((lambda x_2084#804698.constraintLabels = RangeOfCoverage), lambda x_2084#804698, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#803709, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#804247, lambdafunction((lambda x_2085#804699.label = NonListingStartTimestamp), lambda x_2085#804699, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#804695, CASE WHEN (qty#803522 <=> quantityAfterProdPlantOptimization#803521) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#803522 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804767.isOrderUnit, lambda x_2086#804767, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804768.isOrderUnit, lambda x_2086#804768, false)), 1, None, false).numerator as double))), qty#803522), orderQuantityUom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804769.isOrderUnit, lambda x_2086#804769, false)), 1, None, false).uom, orderQuantityBaseUom#803701), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804770.isOrderUnit, lambda x_2086#804770, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702), candidateOrderQuantityInBaseUnit, qty#803522, orderQuantityBaseUom, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#803702, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2088#804771.isPreferred AND (((qty#803522 * cast(lambda x_2088#804771.denominator as double)) % cast(lambda x_2088#804771.numerator as double)) = 0.0)), lambda x_2088#804771, false)), lambdafunction(struct(inPreferredQuantity, ((qty#803522 * cast(lambda x_2089#804809.denominator as double)) / cast(lambda x_2089#804809.numerator as double)), uom, lambda x_2089#804809.uom, uomUuid, lambda x_2089#804809.uomUuid), lambda x_2089#804809, false))).inPreferredQuantity, coalesce((qty#803522 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804772.isOrderUnit, lambda x_2087#804772, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804773.isOrderUnit, lambda x_2087#804773, false)), 1, None, false).numerator as double))), qty#803522)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2088#804774.isPreferred AND (((qty#803522 * cast(lambda x_2088#804774.denominator as double)) % cast(lambda x_2088#804774.numerator as double)) = 0.0)), lambda x_2088#804774, false)), lambdafunction(struct(inPreferredQuantity, ((qty#803522 * cast(lambda x_2089#804810.denominator as double)) / cast(lambda x_2089#804810.numerator as double)), uom, lambda x_2089#804810.uom, uomUuid, lambda x_2089#804810.uomUuid), lambda x_2089#804810, false))).uom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804775.isOrderUnit, lambda x_2087#804775, false)), 1, None, false).uom, orderQuantityBaseUom#803701)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2088#804776.isPreferred AND (((qty#803522 * cast(lambda x_2088#804776.denominator as double)) % cast(lambda x_2088#804776.numerator as double)) = 0.0)), lambda x_2088#804776, false)), lambdafunction(struct(inPreferredQuantity, ((qty#803522 * cast(lambda x_2089#804811.denominator as double)) / cast(lambda x_2089#804811.numerator as double)), uom, lambda x_2089#804811.uom, uomUuid, lambda x_2089#804811.uomUuid), lambda x_2089#804811, false))).uomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804777.isOrderUnit, lambda x_2087#804777, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702)), serviceLevel, coalesce(filter(element_at(quantityKpis#804275, qty#803522, None, false), lambdafunction((lambda x_2094#804778.label = ServiceLevel), lambda x_2094#804778, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#803522 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804781.isOrderUnit, lambda x_2086#804781, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804782.isOrderUnit, lambda x_2086#804782, false)), 1, None, false).numerator as double))), qty#803522), orderQuantityUom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804783.isOrderUnit, lambda x_2086#804783, false)), 1, None, false).uom, orderQuantityBaseUom#803701), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2086#804784.isOrderUnit, lambda x_2086#804784, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702), candidateOrderQuantityInBaseUnit, qty#803522, orderQuantityBaseUom, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#803702, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2088#804785.isPreferred AND (((qty#803522 * cast(lambda x_2088#804785.denominator as double)) % cast(lambda x_2088#804785.numerator as double)) = 0.0)), lambda x_2088#804785, false)), lambdafunction(struct(inPreferredQuantity, ((qty#803522 * cast(lambda x_2089#804812.denominator as double)) / cast(lambda x_2089#804812.numerator as double)), uom, lambda x_2089#804812.uom, uomUuid, lambda x_2089#804812.uomUuid), lambda x_2089#804812, false))).inPreferredQuantity, coalesce((qty#803522 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804786.isOrderUnit, lambda x_2087#804786, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804787.isOrderUnit, lambda x_2087#804787, false)), 1, None, false).numerator as double))), qty#803522)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2088#804788.isPreferred AND (((qty#803522 * cast(lambda x_2088#804788.denominator as double)) % cast(lambda x_2088#804788.numerator as double)) = 0.0)), lambda x_2088#804788, false)), lambdafunction(struct(inPreferredQuantity, ((qty#803522 * cast(lambda x_2089#804813.denominator as double)) / cast(lambda x_2089#804813.numerator as double)), uom, lambda x_2089#804813.uom, uomUuid, lambda x_2089#804813.uomUuid), lambda x_2089#804813, false))).uom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804789.isOrderUnit, lambda x_2087#804789, false)), 1, None, false).uom, orderQuantityBaseUom#803701)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2088#804790.isPreferred AND (((qty#803522 * cast(lambda x_2088#804790.denominator as double)) % cast(lambda x_2088#804790.numerator as double)) = 0.0)), lambda x_2088#804790, false)), lambdafunction(struct(inPreferredQuantity, ((qty#803522 * cast(lambda x_2089#804814.denominator as double)) / cast(lambda x_2089#804814.numerator as double)), uom, lambda x_2089#804814.uom, uomUuid, lambda x_2089#804814.uomUuid), lambda x_2089#804814, false))).uomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2087#804791.isOrderUnit, lambda x_2087#804791, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702)), serviceLevel, coalesce(filter(element_at(quantityKpis#804275, qty#803522, None, false), lambdafunction((lambda x_2097#804792.label = ServiceLevel), lambda x_2097#804792, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#803521 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2090#804795.isOrderUnit, lambda x_2090#804795, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2090#804796.isOrderUnit, lambda x_2090#804796, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#803521), orderQuantityUom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2090#804797.isOrderUnit, lambda x_2090#804797, false)), 1, None, false).uom, orderQuantityBaseUom#803701), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2090#804798.isOrderUnit, lambda x_2090#804798, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#803521, orderQuantityBaseUom, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#803702, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2092#804799.isPreferred AND (((quantityAfterProdPlantOptimization#803521 * cast(lambda x_2092#804799.denominator as double)) % cast(lambda x_2092#804799.numerator as double)) = 0.0)), lambda x_2092#804799, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#803521 * cast(lambda x_2093#804815.denominator as double)) / cast(lambda x_2093#804815.numerator as double)), uom, lambda x_2093#804815.uom, uomUuid, lambda x_2093#804815.uomUuid), lambda x_2093#804815, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#803521 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2091#804800.isOrderUnit, lambda x_2091#804800, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2091#804801.isOrderUnit, lambda x_2091#804801, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#803521)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2092#804802.isPreferred AND (((quantityAfterProdPlantOptimization#803521 * cast(lambda x_2092#804802.denominator as double)) % cast(lambda x_2092#804802.numerator as double)) = 0.0)), lambda x_2092#804802, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#803521 * cast(lambda x_2093#804816.denominator as double)) / cast(lambda x_2093#804816.numerator as double)), uom, lambda x_2093#804816.uom, uomUuid, lambda x_2093#804816.uomUuid), lambda x_2093#804816, false))).uom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2091#804803.isOrderUnit, lambda x_2091#804803, false)), 1, None, false).uom, orderQuantityBaseUom#803701)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#803715, lambdafunction((lambda x_2092#804804.isPreferred AND (((quantityAfterProdPlantOptimization#803521 * cast(lambda x_2092#804804.denominator as double)) % cast(lambda x_2092#804804.numerator as double)) = 0.0)), lambda x_2092#804804, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#803521 * cast(lambda x_2093#804817.denominator as double)) / cast(lambda x_2093#804817.numerator as double)), uom, lambda x_2093#804817.uom, uomUuid, lambda x_2093#804817.uomUuid), lambda x_2093#804817, false))).uomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2091#804805.isOrderUnit, lambda x_2091#804805, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702)), serviceLevel, coalesce(filter(element_at(quantityKpis#804275, quantityAfterProdPlantOptimization#803521, None, false), lambdafunction((lambda x_2100#804806.label = ServiceLevel), lambda x_2100#804806, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#804766, coalesce(filter(prodLocSpecificKpis#804247, lambdafunction((lambda x_2103#804819.label = InitialStockQty), lambda x_2103#804819, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#804818, coalesce(filter(prodLocSpecificKpis#804247, lambdafunction((lambda x_2104#804821.label = DemandPeriodEndTimestamp), lambda x_2104#804821, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#804820]
Input [36]: [shardId#803008, quantityAfterProdPlantOptimization#803521, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, availabilityDateTime#803698, nextAvailabilityDateTime#803699, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, sourceOfSupplyUuid#803687, minimumOrderQuantity#803709, orderProposalItemId#803679, orderProposalItemGroupId#803680, optimizationGroups#803716, measurements#803708, previousOrderProposal#803684L, prodLocSpecificKpis#804247, channelStreamSpecificKpis#804262, quantityKpis#804275, constraintStructArray#804689]
(58) Project
Output [21]: [shardId#803008, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, orderProposalItemId#803679, orderProposalItemGroupId#803680, previousOrderProposal#803684L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#803689, supplyingPlant, supplyingPlant#803719, productGroup, productGroup#803720, product, product#803691, plant, plant#803692, supplierSubRange, subrange#803690, sourceOfSupplyUuid, sourceOfSupplyUuid#803687, deliveryDateTime, deliveryDateTime#803697, unitPrice, netPriceAmount#803706, unitPriceCurrency, netPriceCurrencyCode#803707, unitPriceQuantity, ... 37 more fields) AS parentItem#804900]
Input [37]: [shardId#803008, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, availabilityDateTime#803698, nextAvailabilityDateTime#803699, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, netPriceAmount#803706, netPriceCurrencyCode#803707, netPriceQuantity#803703, netPriceQuantityUom#803704, netPriceQuantityUomUuid#803705, sourceOfSupplyUuid#803687, orderProposalItemId#803679, orderProposalItemGroupId#803680, optimizationGroups#803716, measurements#803708, previousOrderProposal#803684L, prodLocSpecificKpis#804247, channelStreamSpecificKpis#804262, quantityKpis#804275, constraintBenchmark#804695, calculationAnalysis#804766, inventoryDateTime#804818, demandPeriodEndDateTime#804820]
(59) Project
Output [12]: [shardId#803008, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, orderDateTime#803696, splitIndicator#803683L, orderProposalItemGroupId#803680, previousOrderProposal#803684L, parentItem#804900, struct(itemId, orderProposalItemId#803679, supplier, supplier#803689, supplyingPlant, supplyingPlant#803719, productGroup, productGroup#803720, product, product#803691, plant, plant#803692, supplierSubRange, subrange#803690, deliveryDateTime, deliveryDateTime#803697, orderQuantity, coalesce((qty#803522 * (cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2128#804934.isOrderUnit, lambda x_2128#804934, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2128#804935.isOrderUnit, lambda x_2128#804935, false)), 1, None, false).numerator as double))), qty#803522), orderQuantityUom, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2128#804936.isOrderUnit, lambda x_2128#804936, false)), 1, None, false).uom, orderQuantityBaseUom#803701), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#803715, lambdafunction(lambda x_2128#804937.isOrderUnit, lambda x_2128#804937, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#803702), orderQuantityInBaseUnit, qty#803522, orderQuantityBaseUom, ... 13 more fields) AS item#804931]
Input [21]: [shardId#803008, qty#803522, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, productGroup#803720, product#803691, plant#803692, subrange#803690, orderDateTime#803696, deliveryDateTime#803697, logisticUnits#803715, orderQuantityBaseUom#803701, orderQuantityBaseUomUuid#803702, splitIndicator#803683L, orderProposalItemId#803679, orderProposalItemGroupId#803680, previousOrderProposal#803684L, parentItem#804900]
(60) ObjectHashAggregate
Input [12]: [shardId#803008, orderProposalId#803678L, originalReplenishmentRunId#803681L, supplierGroup#803688, supplier#803689, supplyingPlant#803719, orderDateTime#803696, splitIndicator#803683L, orderProposalItemGroupId#803680, previousOrderProposal#803684L, parentItem#804900, item#804931]
Keys [4]: [shardId#803008, orderProposalId#803678L, splitIndicator#803683L, orderProposalItemGroupId#803680]
Functions [8]: [partial_max(originalReplenishmentRunId#803681L), partial_max(supplierGroup#803688), partial_max(supplier#803689), partial_max(supplyingPlant#803719), partial_max(orderDateTime#803696), partial_collect_list(parentItem#804900, 0, 0), partial_collect_set(previousOrderProposal#803684L, 0, 0), partial_collect_list(item#804931, 0, 0)]
Aggregate Attributes [8]: [max#806192L, max#806193, max#806194, max#806195, max#806196, buf#806197, buf#806198, buf#806199]
Results [12]: [shardId#803008, orderProposalId#803678L, splitIndicator#803683L, orderProposalItemGroupId#803680, max#806200L, max#806201, max#806202, max#806203, max#806204, buf#806205, buf#806206, buf#806207]
(61) Exchange
Input [12]: [shardId#803008, orderProposalId#803678L, splitIndicator#803683L, orderProposalItemGroupId#803680, max#806200L, max#806201, max#806202, max#806203, max#806204, buf#806205, buf#806206, buf#806207]
Arguments: hashpartitioning(shardId#803008, orderProposalId#803678L, splitIndicator#803683L, orderProposalItemGroupId#803680, 20), ENSURE_REQUIREMENTS, [plan_id=316313]
(62) ObjectHashAggregate
Input [12]: [shardId#803008, orderProposalId#803678L, splitIndicator#803683L, orderProposalItemGroupId#803680, max#806200L, max#806201, max#806202, max#806203, max#806204, buf#806205, buf#806206, buf#806207]
Keys [4]: [shardId#803008, orderProposalId#803678L, splitIndicator#803683L, orderProposalItemGroupId#803680]
Functions [8]: [max(originalReplenishmentRunId#803681L), max(supplierGroup#803688), max(supplier#803689), max(supplyingPlant#803719), max(orderDateTime#803696), collect_list(parentItem#804900, 0, 0), collect_set(previousOrderProposal#803684L, 0, 0), collect_list(item#804931, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#803681L)#805000L, max(supplierGroup#803688)#805001, max(supplier#803689)#805002, max(supplyingPlant#803719)#805003, max(orderDateTime#803696)#805004, collect_list(parentItem#804900, 0, 0)#805005, collect_set(previousOrderProposal#803684L, 0, 0)#805007, collect_list(item#804931, 0, 0)#805006]
Results [10]: [shardId#803008, orderProposalId#803678L, max(originalReplenishmentRunId#803681L)#805000L AS originalReplenishmentRunId#804948L, max(supplierGroup#803688)#805001 AS supplierGroup#804949, max(supplier#803689)#805002 AS supplier#804950, max(supplyingPlant#803719)#805003 AS supplyingPlant#804951, max(orderDateTime#803696)#805004 AS orderDateTime#804952, collect_list(parentItem#804900, 0, 0)#805005 AS parentItems#804953, collect_set(previousOrderProposal#803684L, 0, 0)#805007 AS previousOrderProposals#804955, struct(itemGroupId, coalesce(orderProposalItemGroupId#803680, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#804931, 0, 0)#805006) AS itemGroup#805009]
(63) ObjectHashAggregate
Input [10]: [shardId#803008, orderProposalId#803678L, originalReplenishmentRunId#804948L, supplierGroup#804949, supplier#804950, supplyingPlant#804951, orderDateTime#804952, parentItems#804953, previousOrderProposals#804955, itemGroup#805009]
Keys [2]: [shardId#803008, orderProposalId#803678L]
Functions [8]: [partial_max(originalReplenishmentRunId#804948L), partial_max(supplierGroup#804949), partial_max(supplier#804950), partial_max(supplyingPlant#804951), partial_max(orderDateTime#804952), partial_collect_list(itemGroup#805009, 0, 0), partial_collect_list(parentItems#804953, 0, 0), partial_collect_set(previousOrderProposals#804955, 0, 0)]
Aggregate Attributes [8]: [max#806176L, max#806177, max#806178, max#806179, max#806180, buf#806181, buf#806182, buf#806183]
Results [10]: [shardId#803008, orderProposalId#803678L, max#806184L, max#806185, max#806186, max#806187, max#806188, buf#806189, buf#806190, buf#806191]
(64) Exchange
Input [10]: [shardId#803008, orderProposalId#803678L, max#806184L, max#806185, max#806186, max#806187, max#806188, buf#806189, buf#806190, buf#806191]
Arguments: hashpartitioning(shardId#803008, orderProposalId#803678L, 20), ENSURE_REQUIREMENTS, [plan_id=316316]
(65) ObjectHashAggregate
Input [10]: [shardId#803008, orderProposalId#803678L, max#806184L, max#806185, max#806186, max#806187, max#806188, buf#806189, buf#806190, buf#806191]
Keys [2]: [shardId#803008, orderProposalId#803678L]
Functions [8]: [max(originalReplenishmentRunId#804948L), max(supplierGroup#804949), max(supplier#804950), max(supplyingPlant#804951), max(orderDateTime#804952), collect_list(itemGroup#805009, 0, 0), collect_list(parentItems#804953, 0, 0), collect_set(previousOrderProposals#804955, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#804948L)#805031L, max(supplierGroup#804949)#805032, max(supplier#804950)#805033, max(supplyingPlant#804951)#805034, max(orderDateTime#804952)#805035, collect_list(itemGroup#805009, 0, 0)#805036, collect_list(parentItems#804953, 0, 0)#805037, collect_set(previousOrderProposals#804955, 0, 0)#805038]
Results [10]: [shardId#803008, orderProposalId#803678L, max(originalReplenishmentRunId#804948L)#805031L AS originalReplenishmentRunId#805010L, max(supplierGroup#804949)#805032 AS supplierGroup#805011, max(supplier#804950)#805033 AS supplier#805012, max(supplyingPlant#804951)#805034 AS supplyingPlant#805013, max(orderDateTime#804952)#805035 AS orderDateTime#805014, collect_list(itemGroup#805009, 0, 0)#805036 AS itemGroups#805015, flatten(collect_list(parentItems#804953, 0, 0)#805037) AS parentItems#805016, flatten(collect_set(previousOrderProposals#804955, 0, 0)#805038) AS previousOrderProposals#805017]
(66) Project
Output [2]: [shardId#803008, struct(orderProposalId, orderProposalId#803678L, originalReplenishmentRunId, originalReplenishmentRunId#805010L, supplierGroup, supplierGroup#805011, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#805011) THEN supplier#805012 END, supplyingPlant, supplyingPlant#805013, orderDateTime, orderDateTime#805014, itemGroups, itemGroups#805015, previousOrderProposals, array_distinct(previousOrderProposals#805017), parentItems, parentItems#805016) AS orderProposal#805042]
Input [10]: [shardId#803008, orderProposalId#803678L, originalReplenishmentRunId#805010L, supplierGroup#805011, supplier#805012, supplyingPlant#805013, orderDateTime#805014, itemGroups#805015, parentItems#805016, previousOrderProposals#805017]
(67) Project
Output [11]: [shardId#803008, orderProposal#805042.orderProposalId AS _extract_orderProposalId#805808L, orderProposal#805042.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#805809L, orderProposal#805042.supplierGroup AS _extract_supplierGroup#805810, orderProposal#805042.supplier AS _extract_supplier#805811, orderProposal#805042.supplyingPlant AS _extract_supplyingPlant#805812, orderProposal#805042.orderDateTime AS _extract_orderDateTime#805813, orderProposal#805042.itemGroups AS _extract_itemGroups#805814, orderProposal#805042.previousOrderProposals AS _extract_previousOrderProposals#805815, orderProposal#805042.parentItems AS _extract_parentItems#805816, orderProposal#805042.orderProposalId AS _extract_orderProposalId#805817L]
Input [2]: [shardId#803008, orderProposal#805042]
(68) Exchange
Input [11]: [shardId#803008, _extract_orderProposalId#805808L, _extract_originalReplenishmentRunId#805809L, _extract_supplierGroup#805810, _extract_supplier#805811, _extract_supplyingPlant#805812, _extract_orderDateTime#805813, _extract_itemGroups#805814, _extract_previousOrderProposals#805815, _extract_parentItems#805816, _extract_orderProposalId#805817L]
Arguments: hashpartitioning(coalesce(shardId#803008, ), isnull(shardId#803008), coalesce(_extract_orderProposalId#805817L, 0), isnull(_extract_orderProposalId#805817L), 20), ENSURE_REQUIREMENTS, [plan_id=316320]
(69) Sort
Input [11]: [shardId#803008, _extract_orderProposalId#805808L, _extract_originalReplenishmentRunId#805809L, _extract_supplierGroup#805810, _extract_supplier#805811, _extract_supplyingPlant#805812, _extract_orderDateTime#805813, _extract_itemGroups#805814, _extract_previousOrderProposals#805815, _extract_parentItems#805816, _extract_orderProposalId#805817L]
Arguments: [coalesce(shardId#803008, ) ASC NULLS FIRST, isnull(shardId#803008) ASC NULLS FIRST, coalesce(_extract_orderProposalId#805817L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#805817L) ASC NULLS FIRST], false, 0
(70) InMemoryTableScan
Output [3]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068]
Arguments: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068], [isnotnull(orderProposalId#805066L)]
(71) InMemoryRelation
Arguments: [shardId#805065, orderProposalId#805066L, items#805067, optimizationGroups#805068, isOptimal#805069, optimizationInsights#805071], StorageLevel(disk, memory, 2 replicas)
(72) Filter [codegen id : 2]
Input [3]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068]
Condition : isnotnull(orderProposalId#805066L)
(73) BroadcastExchange
Input [3]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=316325]
(74) InMemoryTableScan
Output [2]: [items#804684, shardId#804682]
Arguments: [items#804684, shardId#804682], [(size(items#804684.worklistShardItemId, true) > 0), isnotnull(items#804684.worklistShardItemId), (shardId#804682 = 0_1_10000002108)]
(75) InMemoryRelation
Arguments: [shardId#804682, orderProposalId#804683L, items#804684, optimizationGroups#804685, isOptimal#804686, optimizationInsights#804688], StorageLevel(disk, memory, 2 replicas)
(76) Filter [codegen id : 3]
Input [2]: [items#804684, shardId#804682]
Condition : (((size(items#804684.worklistShardItemId, true) > 0) AND isnotnull(items#804684.worklistShardItemId)) AND (shardId#804682 = 0_1_10000002108))
(77) Project [codegen id : 3]
Output [1]: [items#804684.worklistShardItemId AS _extract_worklistShardItemId#805713]
Input [2]: [items#804684, shardId#804682]
(78) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#805713]
Arguments: explode(_extract_worklistShardItemId#805713), false, [item#805072L]
(79) Project [codegen id : 3]
Output [1]: [item#805072L AS worklistShardItemId#805073L]
Input [1]: [item#805072L]
(80) BroadcastExchange
Input [1]: [worklistShardItemId#805073L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=316333]
(81) Scan parquet
Output [5]: [orderProposalId#805121L, isFallbackOrderOnly#805138, worklistShardItemId#805144L, shardId#805165, sequenceId#805143]
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/10000002108]
PartitionFilters: [isnotnull(shardId#805165), isnotnull(sequenceId#805143), (shardId#805165 = 0_1_10000002108), (sequenceId#805143 = 2)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(82) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#805121L, isFallbackOrderOnly#805138, worklistShardItemId#805144L, shardId#805165, sequenceId#805143]
(83) Filter [codegen id : 4]
Input [5]: [orderProposalId#805121L, isFallbackOrderOnly#805138, worklistShardItemId#805144L, shardId#805165, sequenceId#805143]
Condition : ((isnotnull(worklistShardItemId#805144L) AND NOT (isFallbackOrderOnly#805138 <=> true)) AND isnotnull(orderProposalId#805121L))
(84) Project [codegen id : 4]
Output [2]: [orderProposalId#805121L, worklistShardItemId#805144L]
Input [5]: [orderProposalId#805121L, isFallbackOrderOnly#805138, worklistShardItemId#805144L, shardId#805165, sequenceId#805143]
(85) Exchange
Input [2]: [orderProposalId#805121L, worklistShardItemId#805144L]
Arguments: hashpartitioning(worklistShardItemId#805144L, 20), REPARTITION_BY_NUM, [plan_id=316340]
(86) Project
Output [2]: [worklistShardItemId#805144L, orderProposalId#805121L]
Input [2]: [orderProposalId#805121L, worklistShardItemId#805144L]
(87) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#805073L]
Right keys [1]: [worklistShardItemId#805144L]
Join type: Inner
Join condition: None
(88) Project [codegen id : 5]
Output [1]: [orderProposalId#805121L]
Input [3]: [worklistShardItemId#805073L, worklistShardItemId#805144L, orderProposalId#805121L]
(89) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#805121L]
Keys [1]: [orderProposalId#805121L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#805121L]
(90) Exchange
Input [1]: [orderProposalId#805121L]
Arguments: hashpartitioning(orderProposalId#805121L, 20), ENSURE_REQUIREMENTS, [plan_id=316347]
(91) HashAggregate
Input [1]: [orderProposalId#805121L]
Keys [1]: [orderProposalId#805121L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#805121L]
(92) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#805066L]
Right keys [1]: [orderProposalId#805121L]
Join type: Inner
Join condition: None
(93) Project
Output [3]: [orderProposalId#805066L, shardId#805065, coalesce(transform(optimizationGroups#805068, lambdafunction(struct(optGroupId, lambda x_2132#805063.optGroupId, minOrderProfile, lambda x_2132#805063.minOrderProfile, assignmentDetails, lambda x_2132#805063.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_2132#805063.minOrderGoal.dimensionType, unit, lambda x_2132#805063.minOrderGoal.unit, unitUuid, lambda x_2132#805063.minOrderGoal.unitUuid, goalValue, lambda x_2132#805063.minOrderGoal.minOrderValue, calcValue, lambda x_2132#805063.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_2132#805063, false)), []) AS optimizationGroups#805062]
Input [4]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068, orderProposalId#805121L]
(94) Exchange
Input [3]: [orderProposalId#805066L, shardId#805065, optimizationGroups#805062]
Arguments: hashpartitioning(coalesce(shardId#805065, ), isnull(shardId#805065), coalesce(orderProposalId#805066L, 0), isnull(orderProposalId#805066L), 20), ENSURE_REQUIREMENTS, [plan_id=316353]
(95) Sort [codegen id : 7]
Input [3]: [orderProposalId#805066L, shardId#805065, optimizationGroups#805062]
Arguments: [coalesce(shardId#805065, ) ASC NULLS FIRST, isnull(shardId#805065) ASC NULLS FIRST, coalesce(orderProposalId#805066L, 0) ASC NULLS FIRST, isnull(orderProposalId#805066L) ASC NULLS FIRST], false, 0
(96) SortMergeJoin
Left keys [4]: [coalesce(shardId#803008, ), isnull(shardId#803008), coalesce(_extract_orderProposalId#805817L, 0), isnull(_extract_orderProposalId#805817L)]
Right keys [4]: [coalesce(shardId#805065, ), isnull(shardId#805065), coalesce(orderProposalId#805066L, 0), isnull(orderProposalId#805066L)]
Join type: LeftOuter
Join condition: None
(97) Project
Output [2]: [shardId#803008, named_struct(orderProposalId, _extract_orderProposalId#805817L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#805809L, supplierGroup, _extract_supplierGroup#805810, optimizationGroups, coalesce(optimizationGroups#805062, []), supplier, _extract_supplier#805811, supplyingPlant, _extract_supplyingPlant#805812, orderDateTime, _extract_orderDateTime#805813, itemGroups, _extract_itemGroups#805814, previousOrderProposals, _extract_previousOrderProposals#805815, parentItems, _extract_parentItems#805816) AS orderProposal#805169]
Input [14]: [shardId#803008, _extract_orderProposalId#805808L, _extract_originalReplenishmentRunId#805809L, _extract_supplierGroup#805810, _extract_supplier#805811, _extract_supplyingPlant#805812, _extract_orderDateTime#805813, _extract_itemGroups#805814, _extract_previousOrderProposals#805815, _extract_parentItems#805816, _extract_orderProposalId#805817L, orderProposalId#805066L, shardId#805065, optimizationGroups#805062]
(98) Project
Output [3]: [shardId#803008, orderProposal#805169, CASE WHEN (size(orderProposal#805169.parentItems, true) > 2000) THEN xxhash64(orderProposal#805169.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#805169.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#806921L]
Input [2]: [orderProposal#805169, shardId#803008]
(99) ObjectHashAggregate
Input [3]: [shardId#803008, orderProposal#805169, resultSeparationId#806921L]
Keys [2]: [shardId#803008, resultSeparationId#806921L]
Functions [1]: [partial_collect_list(orderProposal#805169, 0, 0)]
Aggregate Attributes [1]: [buf#806960]
Results [3]: [shardId#803008, resultSeparationId#806921L, buf#806961]
(100) Exchange
Input [3]: [shardId#803008, resultSeparationId#806921L, buf#806961]
Arguments: hashpartitioning(shardId#803008, resultSeparationId#806921L, 20), ENSURE_REQUIREMENTS, [plan_id=316500]
(101) ObjectHashAggregate
Input [3]: [shardId#803008, resultSeparationId#806921L, buf#806961]
Keys [2]: [shardId#803008, resultSeparationId#806921L]
Functions [1]: [collect_list(orderProposal#805169, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#805169, 0, 0)#806929]
Results [3]: [shardId#803008, resultSeparationId#806921L, collect_list(orderProposal#805169, 0, 0)#806929 AS orderProposals#806925]
(102) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#807038L]
Results [1]: [count#807039L]
(103) Exchange
Input [1]: [count#807039L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=316524]
(104) HashAggregate [codegen id : 2]
Input [1]: [count#807039L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#806992L]
Results [1]: [count(1)#806992L AS count#806988L]