== Physical Plan ==
CollectLimit (106)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- Project (105)
+- Exchange (104)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- ObjectHashAggregate (103)
+- Exchange (102)
+- ObjectHashAggregate (101)
+- Project (100)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- Project (99)
+- SortMergeJoin LeftOuter (98)
:- Sort (71)
: +- Exchange (70)
: +- Project (69)
: +- Project (68)
: +- ObjectHashAggregate (67)
: +- Exchange (66)
: +- ObjectHashAggregate (65)
: +- ObjectHashAggregate (64)
: +- Exchange (63)
: +- ObjectHashAggregate (62)
: +- Project (61)
: +- Project (60)
: +- Project (59)
: +- * Project (58)
: +- * Filter (57)
: +- InMemoryTableScan (7)
: +- InMemoryRelation (8)
: +- * Project (56)
: +- * SortMergeJoin LeftOuter (55)
: :- * Project (47)
: : +- * SortMergeJoin LeftOuter (46)
: : :- * Project (38)
: : : +- * SortMergeJoin LeftOuter (37)
: : : :- * Sort (31)
: : : : +- Exchange (30)
: : : : +- * Project (29)
: : : : +- * SortMergeJoin LeftOuter (28)
: : : : :- * Sort (20)
: : : : : +- Exchange (19)
: : : : : +- * Project (18)
: : : : : +- * Generate (17)
: : : : : +- * Filter (16)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (15)
: : : : : +- InMemoryTableScan (11)
: : : : : +- InMemoryRelation (12)
: : : : : +- * Filter (14)
: : : : : +- * Scan ExistingRDD (13)
: : : : +- * Sort (27)
: : : : +- * Project (26)
: : : : +- Exchange (25)
: : : : +- * Project (24)
: : : : +- * Filter (23)
: : : : +- * ColumnarToRow (22)
: : : : +- Scan parquet (21)
: : : +- * Sort (36)
: : : +- Exchange (35)
: : : +- * Project (34)
: : : +- * Filter (33)
: : : +- * Scan ExistingRDD (32)
: : +- * Sort (45)
: : +- ObjectHashAggregate (44)
: : +- Exchange (43)
: : +- ObjectHashAggregate (42)
: : +- * Project (41)
: : +- * Filter (40)
: : +- * Scan ExistingRDD (39)
: +- * Sort (54)
: +- ObjectHashAggregate (53)
: +- Exchange (52)
: +- ObjectHashAggregate (51)
: +- * Project (50)
: +- * Filter (49)
: +- * Scan ExistingRDD (48)
+- * Sort (97)
+- Exchange (96)
+- Project (95)
+- * BroadcastHashJoin Inner BuildLeft (94)
:- BroadcastExchange (75)
: +- * Filter (74)
: +- InMemoryTableScan (72)
: +- InMemoryRelation (73)
: +- * Filter (15)
: +- InMemoryTableScan (11)
: +- InMemoryRelation (12)
: +- * Filter (14)
: +- * Scan ExistingRDD (13)
+- * HashAggregate (93)
+- Exchange (92)
+- * HashAggregate (91)
+- * Project (90)
+- * BroadcastHashJoin Inner BuildLeft (89)
:- BroadcastExchange (82)
: +- * Project (81)
: +- * Generate (80)
: +- * Project (79)
: +- * Filter (78)
: +- InMemoryTableScan (76)
: +- InMemoryRelation (77)
: +- * Filter (15)
: +- InMemoryTableScan (11)
: +- InMemoryRelation (12)
: +- * Filter (14)
: +- * Scan ExistingRDD (13)
+- * Project (88)
+- Exchange (87)
+- * Project (86)
+- * Filter (85)
+- * ColumnarToRow (84)
+- Scan parquet (83)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#803008, orderProposals#806925], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [3]: [shardId#803008, resultSeparationId#806921L, orderProposals#806925]
Arguments: [shardId#803008, resultSeparationId#806921L, orderProposals#806925]
(4) InMemoryRelation
Arguments: [shardId#803008, resultSeparationId#806921L, orderProposals#806925], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [2]: [orderProposal#805169, shardId#803008]
Arguments: [orderProposal#805169, shardId#803008]
(6) InMemoryRelation
Arguments: [shardId#803008, orderProposal#805169], StorageLevel(disk, memory, 2 replicas)
(7) 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)]
(8) 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)
(9) InMemoryTableScan
Output [2]: [shardId#803008, items#803010]
Arguments: [shardId#803008, items#803010], [(size(items#803010, true) > 0), isnotnull(items#803010)]
(10) InMemoryRelation
Arguments: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, optimizationInsights#803014], StorageLevel(disk, memory, 2 replicas)
(11) 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)]
(12) InMemoryRelation
Arguments: [shardId#803008, orderProposalId#803009L, items#803010, optimizationGroups#803011, isOptimal#803012, lastModified#803013, optimizationInsights#803014], StorageLevel(disk, memory, 2 replicas)
(13) 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)
(14) 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))
(15) 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))
(16) Filter [codegen id : 1]
Input [2]: [shardId#803008, items#803010]
Condition : ((size(items#803010, true) > 0) AND isnotnull(items#803010))
(17) Generate [codegen id : 1]
Input [2]: [shardId#803008, items#803010]
Arguments: explode(items#803010), [shardId#803008], false, [item#803519]
(18) 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]
(19) Exchange
Input [4]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522]
Arguments: hashpartitioning(worklistShardItemId#803520L, 20), ENSURE_REQUIREMENTS, [plan_id=316013]
(20) Sort [codegen id : 2]
Input [4]: [shardId#803008, worklistShardItemId#803520L, quantityAfterProdPlantOptimization#803521, qty#803522]
Arguments: [worklistShardItemId#803520L ASC NULLS FIRST], false, 0
(21) 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>>
(22) 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]
(23) 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)
(24) 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]
(25) 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]
(26) 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]
(27) 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
(28) SortMergeJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#803520L]
Right keys [1]: [worklistShardItemId#803744L]
Join type: LeftOuter
Join condition: (shardId#803008 = 0_1_10000002108)
(29) 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]
(30) 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]
(31) 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
(32) 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)
(33) 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)))
(34) 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]
(35) Exchange
Input [3]: [shardId#804240, worklistShardItemId#804241L, prodLocSpecificKpis#804246]
Arguments: hashpartitioning(shardId#804240, worklistShardItemId#804241L, 20), ENSURE_REQUIREMENTS, [plan_id=316038]
(36) 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
(37) SortMergeJoin [codegen id : 9]
Left keys [2]: [shardId#803008, worklistShardItemId#803520L]
Right keys [2]: [shardId#804240, worklistShardItemId#804241L]
Join type: LeftOuter
Join condition: None
(38) 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]
(39) 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)
(40) 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)))
(41) 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]
(42) 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]
(43) Exchange
Input [3]: [shardId#804256, worklistShardItemId#804257L, buf#804437]
Arguments: hashpartitioning(shardId#804256, worklistShardItemId#804257L, 20), ENSURE_REQUIREMENTS, [plan_id=316049]
(44) 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]
(45) 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
(46) SortMergeJoin [codegen id : 12]
Left keys [2]: [shardId#803008, worklistShardItemId#803520L]
Right keys [2]: [shardId#804256, worklistShardItemId#804257L]
Join type: LeftOuter
Join condition: None
(47) 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]
(48) 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)
(49) 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)))
(50) 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]
(51) 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]
(52) Exchange
Input [3]: [shardId#804269, worklistShardItemId#804270L, buf#804439]
Arguments: hashpartitioning(shardId#804269, worklistShardItemId#804270L, 20), ENSURE_REQUIREMENTS, [plan_id=316061]
(53) 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]
(54) 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
(55) SortMergeJoin [codegen id : 15]
Left keys [2]: [shardId#803008, worklistShardItemId#803520L]
Right keys [2]: [shardId#804269, worklistShardItemId#804270L]
Join type: LeftOuter
Join condition: None
(56) 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]
(57) 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)
(58) 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]
(59) 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]
(60) 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]
(61) 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]
(62) 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]
(63) 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]
(64) 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]
(65) 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]
(66) 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]
(67) 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]
(68) 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]
(69) 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]
(70) 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]
(71) 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
(72) InMemoryTableScan
Output [3]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068]
Arguments: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068], [isnotnull(orderProposalId#805066L)]
(73) InMemoryRelation
Arguments: [shardId#805065, orderProposalId#805066L, items#805067, optimizationGroups#805068, isOptimal#805069, optimizationInsights#805071], StorageLevel(disk, memory, 2 replicas)
(74) Filter [codegen id : 2]
Input [3]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068]
Condition : isnotnull(orderProposalId#805066L)
(75) BroadcastExchange
Input [3]: [shardId#805065, orderProposalId#805066L, optimizationGroups#805068]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=316325]
(76) 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)]
(77) InMemoryRelation
Arguments: [shardId#804682, orderProposalId#804683L, items#804684, optimizationGroups#804685, isOptimal#804686, optimizationInsights#804688], StorageLevel(disk, memory, 2 replicas)
(78) 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))
(79) Project [codegen id : 3]
Output [1]: [items#804684.worklistShardItemId AS _extract_worklistShardItemId#805713]
Input [2]: [items#804684, shardId#804682]
(80) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#805713]
Arguments: explode(_extract_worklistShardItemId#805713), false, [item#805072L]
(81) Project [codegen id : 3]
Output [1]: [item#805072L AS worklistShardItemId#805073L]
Input [1]: [item#805072L]
(82) BroadcastExchange
Input [1]: [worklistShardItemId#805073L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=316333]
(83) 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>
(84) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#805121L, isFallbackOrderOnly#805138, worklistShardItemId#805144L, shardId#805165, sequenceId#805143]
(85) 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))
(86) Project [codegen id : 4]
Output [2]: [orderProposalId#805121L, worklistShardItemId#805144L]
Input [5]: [orderProposalId#805121L, isFallbackOrderOnly#805138, worklistShardItemId#805144L, shardId#805165, sequenceId#805143]
(87) Exchange
Input [2]: [orderProposalId#805121L, worklistShardItemId#805144L]
Arguments: hashpartitioning(worklistShardItemId#805144L, 20), REPARTITION_BY_NUM, [plan_id=316340]
(88) Project
Output [2]: [worklistShardItemId#805144L, orderProposalId#805121L]
Input [2]: [orderProposalId#805121L, worklistShardItemId#805144L]
(89) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#805073L]
Right keys [1]: [worklistShardItemId#805144L]
Join type: Inner
Join condition: None
(90) Project [codegen id : 5]
Output [1]: [orderProposalId#805121L]
Input [3]: [worklistShardItemId#805073L, worklistShardItemId#805144L, orderProposalId#805121L]
(91) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#805121L]
Keys [1]: [orderProposalId#805121L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#805121L]
(92) Exchange
Input [1]: [orderProposalId#805121L]
Arguments: hashpartitioning(orderProposalId#805121L, 20), ENSURE_REQUIREMENTS, [plan_id=316347]
(93) HashAggregate
Input [1]: [orderProposalId#805121L]
Keys [1]: [orderProposalId#805121L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#805121L]
(94) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#805066L]
Right keys [1]: [orderProposalId#805121L]
Join type: Inner
Join condition: None
(95) 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]
(96) 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]
(97) 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
(98) 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
(99) 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]
(100) 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]
(101) 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]
(102) Exchange
Input [3]: [shardId#803008, resultSeparationId#806921L, buf#806961]
Arguments: hashpartitioning(shardId#803008, resultSeparationId#806921L, 20), ENSURE_REQUIREMENTS, [plan_id=316500]
(103) 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]
(104) Exchange
Input [3]: [shardId#803008, resultSeparationId#806921L, orderProposals#806925]
Arguments: SinglePartition, REPARTITION_BY_NUM, [plan_id=316543]
(105) Project
Output [2]: [shardId#803008, orderProposals#806925]
Input [3]: [shardId#803008, resultSeparationId#806921L, orderProposals#806925]
(106) CollectLimit
Input: []
Arguments: 1