== Physical Plan ==
* HashAggregate (99)
+- Exchange (98)
+- * HashAggregate (97)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- ObjectHashAggregate (96)
+- Exchange (95)
+- ObjectHashAggregate (94)
+- Project (93)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- Project (92)
+- BroadcastHashJoin LeftOuter BuildRight (91)
:- Project (65)
: +- Project (64)
: +- ObjectHashAggregate (63)
: +- Exchange (62)
: +- ObjectHashAggregate (61)
: +- ObjectHashAggregate (60)
: +- Exchange (59)
: +- ObjectHashAggregate (58)
: +- Project (57)
: +- Project (56)
: +- Project (55)
: +- * Project (54)
: +- * Filter (53)
: +- InMemoryTableScan (5)
: +- InMemoryRelation (6)
: +- * Project (52)
: +- * SortMergeJoin LeftOuter (51)
: :- * Project (43)
: : +- * SortMergeJoin LeftOuter (42)
: : :- * Project (34)
: : : +- * SortMergeJoin LeftOuter (33)
: : : :- * Sort (27)
: : : : +- Exchange (26)
: : : : +- * Project (25)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (24)
: : : : :- * Project (16)
: : : : : +- * Generate (15)
: : : : : +- * Filter (14)
: : : : : +- InMemoryTableScan (7)
: : : : : +- InMemoryRelation (8)
: : : : : +- * Filter (13)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (12)
: : : : : +- * Scan ExistingRDD (11)
: : : : +- BroadcastExchange (23)
: : : : +- * Project (22)
: : : : +- Exchange (21)
: : : : +- * Project (20)
: : : : +- * Filter (19)
: : : : +- * ColumnarToRow (18)
: : : : +- Scan parquet (17)
: : : +- * Sort (32)
: : : +- Exchange (31)
: : : +- * Project (30)
: : : +- * Filter (29)
: : : +- * Scan ExistingRDD (28)
: : +- * Sort (41)
: : +- ObjectHashAggregate (40)
: : +- Exchange (39)
: : +- ObjectHashAggregate (38)
: : +- * Project (37)
: : +- * Filter (36)
: : +- * Scan ExistingRDD (35)
: +- * Sort (50)
: +- ObjectHashAggregate (49)
: +- Exchange (48)
: +- ObjectHashAggregate (47)
: +- * Project (46)
: +- * Filter (45)
: +- * Scan ExistingRDD (44)
+- BroadcastExchange (90)
+- Project (89)
+- * BroadcastHashJoin Inner BuildLeft (88)
:- BroadcastExchange (69)
: +- * Filter (68)
: +- InMemoryTableScan (66)
: +- InMemoryRelation (67)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * HashAggregate (87)
+- Exchange (86)
+- * HashAggregate (85)
+- * Project (84)
+- * BroadcastHashJoin Inner BuildLeft (83)
:- BroadcastExchange (76)
: +- * Project (75)
: +- * Generate (74)
: +- * Project (73)
: +- * Filter (72)
: +- InMemoryTableScan (70)
: +- InMemoryRelation (71)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * Project (82)
+- Exchange (81)
+- * Project (80)
+- * Filter (79)
+- * ColumnarToRow (78)
+- Scan parquet (77)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#958036, resultSeparationId#962110L, orderProposals#962114], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#960374, shardId#958036]
Arguments: [orderProposal#960374, shardId#958036]
(4) InMemoryRelation
Arguments: [shardId#958036, orderProposal#960374], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#958726, channelStreamSpecificKpis#959467, constraintLabels#958738, constraintOperators#958739, constraintValues#958741, deliveryDateTime#958725, isFallbackOrderOnly#958728, logisticUnits#958743, measurements#958736, minimumOrderQuantity#958737, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, nextAvailabilityDateTime#958727, optimizationGroups#958744, orderDateTime#958724, orderProposalId#958706L, orderProposalItemGroupId#958708, orderProposalItemId#958707, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, originalReplenishmentRunId#958709L, plant#958720, previousOrderProposal#958712L, prodLocSpecificKpis#959452, product#958719, productGroup#958748, qty#958550, quantityAfterProdPlantOptimization#958549, quantityKpis#959480, shardId#958036, sourceOfSupplyUuid#958715, splitIndicator#958711L, subrange#958718, supplier#958717, supplierGroup#958716, supplyingPlant#958747]
Arguments: [availabilityDateTime#958726, channelStreamSpecificKpis#959467, constraintLabels#958738, constraintOperators#958739, constraintValues#958741, deliveryDateTime#958725, isFallbackOrderOnly#958728, logisticUnits#958743, measurements#958736, minimumOrderQuantity#958737, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, nextAvailabilityDateTime#958727, optimizationGroups#958744, orderDateTime#958724, orderProposalId#958706L, orderProposalItemGroupId#958708, orderProposalItemId#958707, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, originalReplenishmentRunId#958709L, plant#958720, ... 14 more fields], [NOT (isFallbackOrderOnly#958728 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, availabilityDateTime#958726, nextAvailabilityDateTime#958727, constraintValues#958741, constraintOperators#958739, constraintLabels#958738, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, netPriceAmount#958734, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#958036, items#958038]
Arguments: [shardId#958036, items#958038], [(size(items#958038, true) > 0), isnotnull(items#958038)]
(8) InMemoryRelation
Arguments: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, optimizationInsights#958042], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, optimizationInsights#958042]
Arguments: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, optimizationInsights#958042], [isnotnull(shardId#958036), (shardId#958036 = 0_1_10000002110)]
(10) InMemoryRelation
Arguments: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, lastModified#958041, optimizationInsights#958042], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, lastModified#958041, optimizationInsights#958042]
Arguments: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, lastModified#958041, optimizationInsights#958042], MapPartitionsRDD[44956] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, lastModified#958041, optimizationInsights#958042]
Condition : (isnotnull(shardId#958036) AND (shardId#958036 = 0_1_10000002110))
(13) Filter [codegen id : 1]
Input [6]: [shardId#958036, orderProposalId#958037L, items#958038, optimizationGroups#958039, isOptimal#958040, optimizationInsights#958042]
Condition : (isnotnull(shardId#958036) AND (shardId#958036 = 0_1_10000002110))
(14) Filter [codegen id : 3]
Input [2]: [shardId#958036, items#958038]
Condition : ((size(items#958038, true) > 0) AND isnotnull(items#958038))
(15) Generate [codegen id : 3]
Input [2]: [shardId#958036, items#958038]
Arguments: explode(items#958038), [shardId#958036], false, [item#958547]
(16) Project [codegen id : 3]
Output [4]: [shardId#958036, item#958547.worklistShardItemId AS worklistShardItemId#958548L, item#958547.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#958549, item#958547.qty AS qty#958550]
Input [2]: [shardId#958036, item#958547]
(17) Scan parquet
Output [38]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792, shardId#958793, sequenceId#958771]
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/10000002110]
PartitionFilters: [isnotnull(shardId#958793), isnotnull(sequenceId#958771), (shardId#958793 = 0_1_10000002110), (sequenceId#958771 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId)]
ReadSchema: struct<orderProposalId:bigint,orderProposalItemId:string,supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:string,supplyingPlant:string,productGroup:string,product:string,orderDateTime:timestamp,availabilityDateTime:timestamp,nextAvailabilityDateTime:timestamp,sourceOfSupplyUuid:string,isFallbackOrderOnly:boolean,splitIndicator:bigint,previousOrderProposal:bigint,worklistShardItemId:bigint,orderProposalItemGroupId:string,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>>
(18) ColumnarToRow [codegen id : 1]
Input [38]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792, shardId#958793, sequenceId#958771]
(19) Filter [codegen id : 1]
Input [38]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792, shardId#958793, sequenceId#958771]
Condition : isnotnull(worklistShardItemId#958772L)
(20) Project [codegen id : 1]
Output [36]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792]
Input [38]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792, shardId#958793, sequenceId#958771]
(21) Exchange
Input [36]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792]
Arguments: hashpartitioning(worklistShardItemId#958772L, 20), REPARTITION_BY_NUM, [plan_id=375217]
(22) Project [codegen id : 2]
Output [36]: [worklistShardItemId#958772L, orderProposalId#958749L, orderProposalItemId#958750, orderProposalItemGroupId#958773, originalReplenishmentRunId#958791L, splitIndicator#958768L, previousOrderProposal#958769L, sourceOfSupplyUuid#958763, supplierGroup#958751, supplier#958752, subrange#958755, product#958758, plant#958753, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, isFallbackOrderOnly#958766, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, netPriceAmount#958785, netPriceCurrencyCode#958786, measurements#958790, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, logisticUnits#958776, optimizationGroups#958792, externalProductId#958774, externalPlantId#958775, supplyingPlant#958756, productGroup#958757]
Input [36]: [orderProposalId#958749L, orderProposalItemId#958750, supplierGroup#958751, supplier#958752, plant#958753, deliveryDateTime#958754, subrange#958755, supplyingPlant#958756, productGroup#958757, product#958758, orderDateTime#958759, availabilityDateTime#958760, nextAvailabilityDateTime#958761, sourceOfSupplyUuid#958763, isFallbackOrderOnly#958766, splitIndicator#958768L, previousOrderProposal#958769L, worklistShardItemId#958772L, orderProposalItemGroupId#958773, externalProductId#958774, externalPlantId#958775, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, measurements#958790, originalReplenishmentRunId#958791L, optimizationGroups#958792]
(23) BroadcastExchange
Input [36]: [worklistShardItemId#958772L, orderProposalId#958749L, orderProposalItemId#958750, orderProposalItemGroupId#958773, originalReplenishmentRunId#958791L, splitIndicator#958768L, previousOrderProposal#958769L, sourceOfSupplyUuid#958763, supplierGroup#958751, supplier#958752, subrange#958755, product#958758, plant#958753, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, isFallbackOrderOnly#958766, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, netPriceAmount#958785, netPriceCurrencyCode#958786, measurements#958790, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, logisticUnits#958776, optimizationGroups#958792, externalProductId#958774, externalPlantId#958775, supplyingPlant#958756, productGroup#958757]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=375221]
(24) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#958548L]
Right keys [1]: [worklistShardItemId#958772L]
Join type: LeftOuter
Join condition: (shardId#958036 = 0_1_10000002110)
(25) Project [codegen id : 3]
Output [39]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766]
Input [40]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, worklistShardItemId#958772L, orderProposalId#958749L, orderProposalItemId#958750, orderProposalItemGroupId#958773, originalReplenishmentRunId#958791L, splitIndicator#958768L, previousOrderProposal#958769L, sourceOfSupplyUuid#958763, supplierGroup#958751, supplier#958752, subrange#958755, product#958758, plant#958753, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, isFallbackOrderOnly#958766, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, netPriceAmount#958785, netPriceCurrencyCode#958786, measurements#958790, minimumOrderQuantity#958779, constraintLabels#958780, constraintOperators#958781, constraintValues#958782, logisticUnits#958776, optimizationGroups#958792, externalProductId#958774, externalPlantId#958775, supplyingPlant#958756, productGroup#958757]
(26) Exchange
Input [39]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766]
Arguments: hashpartitioning(shardId#958036, worklistShardItemId#958548L, 20), ENSURE_REQUIREMENTS, [plan_id=375226]
(27) Sort [codegen id : 4]
Input [39]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766]
Arguments: [shardId#958036 ASC NULLS FIRST, worklistShardItemId#958548L ASC NULLS FIRST], false, 0
(28) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#959445, worklistShardItemId#959446L, qty#959447, demandChannel#959448, demandStream#959449, kpis#959450]
Arguments: [shardId#959445, worklistShardItemId#959446L, qty#959447, demandChannel#959448, demandStream#959449, kpis#959450], MapPartitionsRDD[45030] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(29) Filter [codegen id : 5]
Input [6]: [shardId#959445, worklistShardItemId#959446L, qty#959447, demandChannel#959448, demandStream#959449, kpis#959450]
Condition : (((isnull(qty#959447) AND isnull(demandChannel#959448)) AND isnull(demandStream#959449)) AND (isnotnull(shardId#959445) AND isnotnull(worklistShardItemId#959446L)))
(30) Project [codegen id : 5]
Output [3]: [shardId#959445, worklistShardItemId#959446L, coalesce(kpis#959450, []) AS prodLocSpecificKpis#959451]
Input [6]: [shardId#959445, worklistShardItemId#959446L, qty#959447, demandChannel#959448, demandStream#959449, kpis#959450]
(31) Exchange
Input [3]: [shardId#959445, worklistShardItemId#959446L, prodLocSpecificKpis#959451]
Arguments: hashpartitioning(shardId#959445, worklistShardItemId#959446L, 20), ENSURE_REQUIREMENTS, [plan_id=375232]
(32) Sort [codegen id : 6]
Input [3]: [shardId#959445, worklistShardItemId#959446L, prodLocSpecificKpis#959451]
Arguments: [shardId#959445 ASC NULLS FIRST, worklistShardItemId#959446L ASC NULLS FIRST], false, 0
(33) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#958036, worklistShardItemId#958548L]
Right keys [2]: [shardId#959445, worklistShardItemId#959446L]
Join type: LeftOuter
Join condition: None
(34) Project [codegen id : 7]
Output [40]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766, coalesce(prodLocSpecificKpis#959451, []) AS prodLocSpecificKpis#959452]
Input [42]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766, shardId#959445, worklistShardItemId#959446L, prodLocSpecificKpis#959451]
(35) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#959461, worklistShardItemId#959462L, qty#959463, demandChannel#959464, demandStream#959465, kpis#959466]
Arguments: [shardId#959461, worklistShardItemId#959462L, qty#959463, demandChannel#959464, demandStream#959465, kpis#959466], MapPartitionsRDD[45030] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(36) Filter [codegen id : 8]
Input [6]: [shardId#959461, worklistShardItemId#959462L, qty#959463, demandChannel#959464, demandStream#959465, kpis#959466]
Condition : ((((isnull(qty#959463) AND isnotnull(demandChannel#959464)) AND isnotnull(demandStream#959465)) AND (size(kpis#959466, true) > 0)) AND (isnotnull(shardId#959461) AND isnotnull(worklistShardItemId#959462L)))
(37) Project [codegen id : 8]
Output [5]: [shardId#959461, worklistShardItemId#959462L, demandChannel#959464, demandStream#959465, kpis#959466]
Input [6]: [shardId#959461, worklistShardItemId#959462L, qty#959463, demandChannel#959464, demandStream#959465, kpis#959466]
(38) ObjectHashAggregate
Input [5]: [shardId#959461, worklistShardItemId#959462L, demandChannel#959464, demandStream#959465, kpis#959466]
Keys [2]: [shardId#959461, worklistShardItemId#959462L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#959464, demandStream, demandStream#959465, kpis, kpis#959466), 0, 0)]
Aggregate Attributes [1]: [buf#959641]
Results [3]: [shardId#959461, worklistShardItemId#959462L, buf#959642]
(39) Exchange
Input [3]: [shardId#959461, worklistShardItemId#959462L, buf#959642]
Arguments: hashpartitioning(shardId#959461, worklistShardItemId#959462L, 20), ENSURE_REQUIREMENTS, [plan_id=375243]
(40) ObjectHashAggregate
Input [3]: [shardId#959461, worklistShardItemId#959462L, buf#959642]
Keys [2]: [shardId#959461, worklistShardItemId#959462L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#959464, demandStream, demandStream#959465, kpis, kpis#959466), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#959464, demandStream, demandStream#959465, kpis, kpis#959466), 0, 0)#959460]
Results [3]: [shardId#959461, worklistShardItemId#959462L, collect_list(struct(demandChannel, demandChannel#959464, demandStream, demandStream#959465, kpis, kpis#959466), 0, 0)#959460 AS channelStreamSpecificKpis#959453]
(41) Sort [codegen id : 9]
Input [3]: [shardId#959461, worklistShardItemId#959462L, channelStreamSpecificKpis#959453]
Arguments: [shardId#959461 ASC NULLS FIRST, worklistShardItemId#959462L ASC NULLS FIRST], false, 0
(42) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#958036, worklistShardItemId#958548L]
Right keys [2]: [shardId#959461, worklistShardItemId#959462L]
Join type: LeftOuter
Join condition: None
(43) Project [codegen id : 10]
Output [41]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766, prodLocSpecificKpis#959452, coalesce(channelStreamSpecificKpis#959453, []) AS channelStreamSpecificKpis#959467]
Input [43]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766, prodLocSpecificKpis#959452, shardId#959461, worklistShardItemId#959462L, channelStreamSpecificKpis#959453]
(44) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#959474, worklistShardItemId#959475L, qty#959476, demandChannel#959477, demandStream#959478, kpis#959479]
Arguments: [shardId#959474, worklistShardItemId#959475L, qty#959476, demandChannel#959477, demandStream#959478, kpis#959479], MapPartitionsRDD[45030] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(45) Filter [codegen id : 11]
Input [6]: [shardId#959474, worklistShardItemId#959475L, qty#959476, demandChannel#959477, demandStream#959478, kpis#959479]
Condition : ((isnotnull(qty#959476) AND isnotnull(kpis#959479)) AND (isnotnull(shardId#959474) AND isnotnull(worklistShardItemId#959475L)))
(46) Project [codegen id : 11]
Output [4]: [shardId#959474, worklistShardItemId#959475L, qty#959476, kpis#959479]
Input [6]: [shardId#959474, worklistShardItemId#959475L, qty#959476, demandChannel#959477, demandStream#959478, kpis#959479]
(47) ObjectHashAggregate
Input [4]: [shardId#959474, worklistShardItemId#959475L, qty#959476, kpis#959479]
Keys [2]: [shardId#959474, worklistShardItemId#959475L]
Functions [1]: [partial_collect_list(struct(qty, qty#959476, kpis, kpis#959479), 0, 0)]
Aggregate Attributes [1]: [buf#959643]
Results [3]: [shardId#959474, worklistShardItemId#959475L, buf#959644]
(48) Exchange
Input [3]: [shardId#959474, worklistShardItemId#959475L, buf#959644]
Arguments: hashpartitioning(shardId#959474, worklistShardItemId#959475L, 20), ENSURE_REQUIREMENTS, [plan_id=375255]
(49) ObjectHashAggregate
Input [3]: [shardId#959474, worklistShardItemId#959475L, buf#959644]
Keys [2]: [shardId#959474, worklistShardItemId#959475L]
Functions [1]: [collect_list(struct(qty, qty#959476, kpis, kpis#959479), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#959476, kpis, kpis#959479), 0, 0)#959473]
Results [3]: [shardId#959474, worklistShardItemId#959475L, map_from_entries(collect_list(struct(qty, qty#959476, kpis, kpis#959479), 0, 0)#959473) AS quantityKpis#959468]
(50) Sort [codegen id : 12]
Input [3]: [shardId#959474, worklistShardItemId#959475L, quantityKpis#959468]
Arguments: [shardId#959474 ASC NULLS FIRST, worklistShardItemId#959475L ASC NULLS FIRST], false, 0
(51) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#958036, worklistShardItemId#958548L]
Right keys [2]: [shardId#959474, worklistShardItemId#959475L]
Join type: LeftOuter
Join condition: None
(52) Project [codegen id : 13]
Output [42]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766, prodLocSpecificKpis#959452, channelStreamSpecificKpis#959467, coalesce(quantityKpis#959468, map(keys: [], values: [])) AS quantityKpis#959480]
Input [44]: [shardId#958036, worklistShardItemId#958548L, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958749L, originalReplenishmentRunId#958791L, supplierGroup#958751, supplier#958752, supplyingPlant#958756, productGroup#958757, product#958758, plant#958753, subrange#958755, orderDateTime#958759, deliveryDateTime#958754, availabilityDateTime#958760, nextAvailabilityDateTime#958761, constraintValues#958782, constraintOperators#958781, constraintLabels#958780, logisticUnits#958776, orderQuantityBaseUom#958777, orderQuantityBaseUomUuid#958778, splitIndicator#958768L, netPriceAmount#958785, netPriceCurrencyCode#958786, netPriceQuantity#958787, netPriceQuantityUom#958788, netPriceQuantityUomUuid#958789, sourceOfSupplyUuid#958763, minimumOrderQuantity#958779, orderProposalItemId#958750, orderProposalItemGroupId#958773, optimizationGroups#958792, measurements#958790, externalProductId#958774, externalPlantId#958775, previousOrderProposal#958769L, isFallbackOrderOnly#958766, prodLocSpecificKpis#959452, channelStreamSpecificKpis#959467, shardId#959474, worklistShardItemId#959475L, quantityKpis#959468]
(53) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#958726, channelStreamSpecificKpis#959467, constraintLabels#958738, constraintOperators#958739, constraintValues#958741, deliveryDateTime#958725, isFallbackOrderOnly#958728, logisticUnits#958743, measurements#958736, minimumOrderQuantity#958737, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, nextAvailabilityDateTime#958727, optimizationGroups#958744, orderDateTime#958724, orderProposalId#958706L, orderProposalItemGroupId#958708, orderProposalItemId#958707, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, originalReplenishmentRunId#958709L, plant#958720, previousOrderProposal#958712L, prodLocSpecificKpis#959452, product#958719, productGroup#958748, qty#958550, quantityAfterProdPlantOptimization#958549, quantityKpis#959480, shardId#958036, sourceOfSupplyUuid#958715, splitIndicator#958711L, subrange#958718, supplier#958717, supplierGroup#958716, supplyingPlant#958747]
Condition : NOT (isFallbackOrderOnly#958728 <=> true)
(54) Project [codegen id : 1]
Output [36]: [shardId#958036, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, availabilityDateTime#958726, nextAvailabilityDateTime#958727, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, sourceOfSupplyUuid#958715, minimumOrderQuantity#958737, orderProposalItemId#958707, orderProposalItemGroupId#958708, optimizationGroups#958744, measurements#958736, previousOrderProposal#958712L, prodLocSpecificKpis#959452, channelStreamSpecificKpis#959467, quantityKpis#959480, arrays_zip(constraintLabels#958738, constraintOperators#958739, constraintValues#958741, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#959894]
Input [39]: [availabilityDateTime#958726, channelStreamSpecificKpis#959467, constraintLabels#958738, constraintOperators#958739, constraintValues#958741, deliveryDateTime#958725, isFallbackOrderOnly#958728, logisticUnits#958743, measurements#958736, minimumOrderQuantity#958737, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, nextAvailabilityDateTime#958727, optimizationGroups#958744, orderDateTime#958724, orderProposalId#958706L, orderProposalItemGroupId#958708, orderProposalItemId#958707, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, originalReplenishmentRunId#958709L, plant#958720, previousOrderProposal#958712L, prodLocSpecificKpis#959452, product#958719, productGroup#958748, qty#958550, quantityAfterProdPlantOptimization#958549, quantityKpis#959480, shardId#958036, sourceOfSupplyUuid#958715, splitIndicator#958711L, subrange#958718, supplier#958717, supplierGroup#958716, supplyingPlant#958747]
(55) Project
Output [37]: [shardId#958036, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, availabilityDateTime#958726, nextAvailabilityDateTime#958727, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, sourceOfSupplyUuid#958715, orderProposalItemId#958707, orderProposalItemGroupId#958708, optimizationGroups#958744, measurements#958736, previousOrderProposal#958712L, prodLocSpecificKpis#959452, channelStreamSpecificKpis#959467, quantityKpis#959480, struct(minServiceLevel, array_min(filter(constraintStructArray#959894, lambdafunction((lambda x_2469#959901.constraintLabels = ServiceLevel), lambda x_2469#959901, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#959894, lambdafunction((lambda x_2470#959902.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_2470#959902, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#959894, lambdafunction((lambda x_2471#959903.constraintLabels = RangeOfCoverage), lambda x_2471#959903, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#958737, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#959452, lambdafunction((lambda x_2472#959904.label = NonListingStartTimestamp), lambda x_2472#959904, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#959900, CASE WHEN (qty#958550 <=> quantityAfterProdPlantOptimization#958549) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#958550 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959972.isOrderUnit, lambda x_2473#959972, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959973.isOrderUnit, lambda x_2473#959973, false)), 1, None, false).numerator as double))), qty#958550), orderQuantityUom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959974.isOrderUnit, lambda x_2473#959974, false)), 1, None, false).uom, orderQuantityBaseUom#958729), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959975.isOrderUnit, lambda x_2473#959975, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730), candidateOrderQuantityInBaseUnit, qty#958550, orderQuantityBaseUom, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#958730, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2475#959976.isPreferred AND (((qty#958550 * cast(lambda x_2475#959976.denominator as double)) % cast(lambda x_2475#959976.numerator as double)) = 0.0)), lambda x_2475#959976, false)), lambdafunction(struct(inPreferredQuantity, ((qty#958550 * cast(lambda x_2476#960014.denominator as double)) / cast(lambda x_2476#960014.numerator as double)), uom, lambda x_2476#960014.uom, uomUuid, lambda x_2476#960014.uomUuid), lambda x_2476#960014, false))).inPreferredQuantity, coalesce((qty#958550 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959977.isOrderUnit, lambda x_2474#959977, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959978.isOrderUnit, lambda x_2474#959978, false)), 1, None, false).numerator as double))), qty#958550)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2475#959979.isPreferred AND (((qty#958550 * cast(lambda x_2475#959979.denominator as double)) % cast(lambda x_2475#959979.numerator as double)) = 0.0)), lambda x_2475#959979, false)), lambdafunction(struct(inPreferredQuantity, ((qty#958550 * cast(lambda x_2476#960015.denominator as double)) / cast(lambda x_2476#960015.numerator as double)), uom, lambda x_2476#960015.uom, uomUuid, lambda x_2476#960015.uomUuid), lambda x_2476#960015, false))).uom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959980.isOrderUnit, lambda x_2474#959980, false)), 1, None, false).uom, orderQuantityBaseUom#958729)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2475#959981.isPreferred AND (((qty#958550 * cast(lambda x_2475#959981.denominator as double)) % cast(lambda x_2475#959981.numerator as double)) = 0.0)), lambda x_2475#959981, false)), lambdafunction(struct(inPreferredQuantity, ((qty#958550 * cast(lambda x_2476#960016.denominator as double)) / cast(lambda x_2476#960016.numerator as double)), uom, lambda x_2476#960016.uom, uomUuid, lambda x_2476#960016.uomUuid), lambda x_2476#960016, false))).uomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959982.isOrderUnit, lambda x_2474#959982, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730)), serviceLevel, coalesce(filter(element_at(quantityKpis#959480, qty#958550, None, false), lambdafunction((lambda x_2481#959983.label = ServiceLevel), lambda x_2481#959983, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#958550 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959986.isOrderUnit, lambda x_2473#959986, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959987.isOrderUnit, lambda x_2473#959987, false)), 1, None, false).numerator as double))), qty#958550), orderQuantityUom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959988.isOrderUnit, lambda x_2473#959988, false)), 1, None, false).uom, orderQuantityBaseUom#958729), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2473#959989.isOrderUnit, lambda x_2473#959989, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730), candidateOrderQuantityInBaseUnit, qty#958550, orderQuantityBaseUom, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#958730, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2475#959990.isPreferred AND (((qty#958550 * cast(lambda x_2475#959990.denominator as double)) % cast(lambda x_2475#959990.numerator as double)) = 0.0)), lambda x_2475#959990, false)), lambdafunction(struct(inPreferredQuantity, ((qty#958550 * cast(lambda x_2476#960017.denominator as double)) / cast(lambda x_2476#960017.numerator as double)), uom, lambda x_2476#960017.uom, uomUuid, lambda x_2476#960017.uomUuid), lambda x_2476#960017, false))).inPreferredQuantity, coalesce((qty#958550 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959991.isOrderUnit, lambda x_2474#959991, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959992.isOrderUnit, lambda x_2474#959992, false)), 1, None, false).numerator as double))), qty#958550)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2475#959993.isPreferred AND (((qty#958550 * cast(lambda x_2475#959993.denominator as double)) % cast(lambda x_2475#959993.numerator as double)) = 0.0)), lambda x_2475#959993, false)), lambdafunction(struct(inPreferredQuantity, ((qty#958550 * cast(lambda x_2476#960018.denominator as double)) / cast(lambda x_2476#960018.numerator as double)), uom, lambda x_2476#960018.uom, uomUuid, lambda x_2476#960018.uomUuid), lambda x_2476#960018, false))).uom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959994.isOrderUnit, lambda x_2474#959994, false)), 1, None, false).uom, orderQuantityBaseUom#958729)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2475#959995.isPreferred AND (((qty#958550 * cast(lambda x_2475#959995.denominator as double)) % cast(lambda x_2475#959995.numerator as double)) = 0.0)), lambda x_2475#959995, false)), lambdafunction(struct(inPreferredQuantity, ((qty#958550 * cast(lambda x_2476#960019.denominator as double)) / cast(lambda x_2476#960019.numerator as double)), uom, lambda x_2476#960019.uom, uomUuid, lambda x_2476#960019.uomUuid), lambda x_2476#960019, false))).uomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2474#959996.isOrderUnit, lambda x_2474#959996, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730)), serviceLevel, coalesce(filter(element_at(quantityKpis#959480, qty#958550, None, false), lambdafunction((lambda x_2484#959997.label = ServiceLevel), lambda x_2484#959997, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#958549 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2477#960000.isOrderUnit, lambda x_2477#960000, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2477#960001.isOrderUnit, lambda x_2477#960001, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#958549), orderQuantityUom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2477#960002.isOrderUnit, lambda x_2477#960002, false)), 1, None, false).uom, orderQuantityBaseUom#958729), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2477#960003.isOrderUnit, lambda x_2477#960003, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#958549, orderQuantityBaseUom, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#958730, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2479#960004.isPreferred AND (((quantityAfterProdPlantOptimization#958549 * cast(lambda x_2479#960004.denominator as double)) % cast(lambda x_2479#960004.numerator as double)) = 0.0)), lambda x_2479#960004, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#958549 * cast(lambda x_2480#960020.denominator as double)) / cast(lambda x_2480#960020.numerator as double)), uom, lambda x_2480#960020.uom, uomUuid, lambda x_2480#960020.uomUuid), lambda x_2480#960020, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#958549 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2478#960005.isOrderUnit, lambda x_2478#960005, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2478#960006.isOrderUnit, lambda x_2478#960006, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#958549)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2479#960007.isPreferred AND (((quantityAfterProdPlantOptimization#958549 * cast(lambda x_2479#960007.denominator as double)) % cast(lambda x_2479#960007.numerator as double)) = 0.0)), lambda x_2479#960007, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#958549 * cast(lambda x_2480#960021.denominator as double)) / cast(lambda x_2480#960021.numerator as double)), uom, lambda x_2480#960021.uom, uomUuid, lambda x_2480#960021.uomUuid), lambda x_2480#960021, false))).uom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2478#960008.isOrderUnit, lambda x_2478#960008, false)), 1, None, false).uom, orderQuantityBaseUom#958729)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#958743, lambdafunction((lambda x_2479#960009.isPreferred AND (((quantityAfterProdPlantOptimization#958549 * cast(lambda x_2479#960009.denominator as double)) % cast(lambda x_2479#960009.numerator as double)) = 0.0)), lambda x_2479#960009, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#958549 * cast(lambda x_2480#960022.denominator as double)) / cast(lambda x_2480#960022.numerator as double)), uom, lambda x_2480#960022.uom, uomUuid, lambda x_2480#960022.uomUuid), lambda x_2480#960022, false))).uomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2478#960010.isOrderUnit, lambda x_2478#960010, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730)), serviceLevel, coalesce(filter(element_at(quantityKpis#959480, quantityAfterProdPlantOptimization#958549, None, false), lambdafunction((lambda x_2487#960011.label = ServiceLevel), lambda x_2487#960011, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#959971, coalesce(filter(prodLocSpecificKpis#959452, lambdafunction((lambda x_2490#960024.label = InitialStockQty), lambda x_2490#960024, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#960023, coalesce(filter(prodLocSpecificKpis#959452, lambdafunction((lambda x_2491#960026.label = DemandPeriodEndTimestamp), lambda x_2491#960026, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#960025]
Input [36]: [shardId#958036, quantityAfterProdPlantOptimization#958549, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, availabilityDateTime#958726, nextAvailabilityDateTime#958727, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, sourceOfSupplyUuid#958715, minimumOrderQuantity#958737, orderProposalItemId#958707, orderProposalItemGroupId#958708, optimizationGroups#958744, measurements#958736, previousOrderProposal#958712L, prodLocSpecificKpis#959452, channelStreamSpecificKpis#959467, quantityKpis#959480, constraintStructArray#959894]
(56) Project
Output [21]: [shardId#958036, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, orderProposalItemId#958707, orderProposalItemGroupId#958708, previousOrderProposal#958712L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#958717, supplyingPlant, supplyingPlant#958747, productGroup, productGroup#958748, product, product#958719, plant, plant#958720, supplierSubRange, subrange#958718, sourceOfSupplyUuid, sourceOfSupplyUuid#958715, deliveryDateTime, deliveryDateTime#958725, unitPrice, netPriceAmount#958734, unitPriceCurrency, netPriceCurrencyCode#958735, unitPriceQuantity, ... 37 more fields) AS parentItem#960105]
Input [37]: [shardId#958036, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, availabilityDateTime#958726, nextAvailabilityDateTime#958727, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, netPriceAmount#958734, netPriceCurrencyCode#958735, netPriceQuantity#958731, netPriceQuantityUom#958732, netPriceQuantityUomUuid#958733, sourceOfSupplyUuid#958715, orderProposalItemId#958707, orderProposalItemGroupId#958708, optimizationGroups#958744, measurements#958736, previousOrderProposal#958712L, prodLocSpecificKpis#959452, channelStreamSpecificKpis#959467, quantityKpis#959480, constraintBenchmark#959900, calculationAnalysis#959971, inventoryDateTime#960023, demandPeriodEndDateTime#960025]
(57) Project
Output [12]: [shardId#958036, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, orderDateTime#958724, splitIndicator#958711L, orderProposalItemGroupId#958708, previousOrderProposal#958712L, parentItem#960105, struct(itemId, orderProposalItemId#958707, supplier, supplier#958717, supplyingPlant, supplyingPlant#958747, productGroup, productGroup#958748, product, product#958719, plant, plant#958720, supplierSubRange, subrange#958718, deliveryDateTime, deliveryDateTime#958725, orderQuantity, coalesce((qty#958550 * (cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2515#960139.isOrderUnit, lambda x_2515#960139, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2515#960140.isOrderUnit, lambda x_2515#960140, false)), 1, None, false).numerator as double))), qty#958550), orderQuantityUom, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2515#960141.isOrderUnit, lambda x_2515#960141, false)), 1, None, false).uom, orderQuantityBaseUom#958729), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#958743, lambdafunction(lambda x_2515#960142.isOrderUnit, lambda x_2515#960142, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#958730), orderQuantityInBaseUnit, qty#958550, orderQuantityBaseUom, ... 13 more fields) AS item#960136]
Input [21]: [shardId#958036, qty#958550, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, productGroup#958748, product#958719, plant#958720, subrange#958718, orderDateTime#958724, deliveryDateTime#958725, logisticUnits#958743, orderQuantityBaseUom#958729, orderQuantityBaseUomUuid#958730, splitIndicator#958711L, orderProposalItemId#958707, orderProposalItemGroupId#958708, previousOrderProposal#958712L, parentItem#960105]
(58) ObjectHashAggregate
Input [12]: [shardId#958036, orderProposalId#958706L, originalReplenishmentRunId#958709L, supplierGroup#958716, supplier#958717, supplyingPlant#958747, orderDateTime#958724, splitIndicator#958711L, orderProposalItemGroupId#958708, previousOrderProposal#958712L, parentItem#960105, item#960136]
Keys [4]: [shardId#958036, orderProposalId#958706L, splitIndicator#958711L, orderProposalItemGroupId#958708]
Functions [8]: [partial_max(originalReplenishmentRunId#958709L), partial_max(supplierGroup#958716), partial_max(supplier#958717), partial_max(supplyingPlant#958747), partial_max(orderDateTime#958724), partial_collect_list(parentItem#960105, 0, 0), partial_collect_set(previousOrderProposal#958712L, 0, 0), partial_collect_list(item#960136, 0, 0)]
Aggregate Attributes [8]: [max#961397L, max#961398, max#961399, max#961400, max#961401, buf#961402, buf#961403, buf#961404]
Results [12]: [shardId#958036, orderProposalId#958706L, splitIndicator#958711L, orderProposalItemGroupId#958708, max#961405L, max#961406, max#961407, max#961408, max#961409, buf#961410, buf#961411, buf#961412]
(59) Exchange
Input [12]: [shardId#958036, orderProposalId#958706L, splitIndicator#958711L, orderProposalItemGroupId#958708, max#961405L, max#961406, max#961407, max#961408, max#961409, buf#961410, buf#961411, buf#961412]
Arguments: hashpartitioning(shardId#958036, orderProposalId#958706L, splitIndicator#958711L, orderProposalItemGroupId#958708, 20), ENSURE_REQUIREMENTS, [plan_id=375493]
(60) ObjectHashAggregate
Input [12]: [shardId#958036, orderProposalId#958706L, splitIndicator#958711L, orderProposalItemGroupId#958708, max#961405L, max#961406, max#961407, max#961408, max#961409, buf#961410, buf#961411, buf#961412]
Keys [4]: [shardId#958036, orderProposalId#958706L, splitIndicator#958711L, orderProposalItemGroupId#958708]
Functions [8]: [max(originalReplenishmentRunId#958709L), max(supplierGroup#958716), max(supplier#958717), max(supplyingPlant#958747), max(orderDateTime#958724), collect_list(parentItem#960105, 0, 0), collect_set(previousOrderProposal#958712L, 0, 0), collect_list(item#960136, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#958709L)#960205L, max(supplierGroup#958716)#960206, max(supplier#958717)#960207, max(supplyingPlant#958747)#960208, max(orderDateTime#958724)#960209, collect_list(parentItem#960105, 0, 0)#960210, collect_set(previousOrderProposal#958712L, 0, 0)#960212, collect_list(item#960136, 0, 0)#960211]
Results [10]: [shardId#958036, orderProposalId#958706L, max(originalReplenishmentRunId#958709L)#960205L AS originalReplenishmentRunId#960153L, max(supplierGroup#958716)#960206 AS supplierGroup#960154, max(supplier#958717)#960207 AS supplier#960155, max(supplyingPlant#958747)#960208 AS supplyingPlant#960156, max(orderDateTime#958724)#960209 AS orderDateTime#960157, collect_list(parentItem#960105, 0, 0)#960210 AS parentItems#960158, collect_set(previousOrderProposal#958712L, 0, 0)#960212 AS previousOrderProposals#960160, struct(itemGroupId, coalesce(orderProposalItemGroupId#958708, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#960136, 0, 0)#960211) AS itemGroup#960214]
(61) ObjectHashAggregate
Input [10]: [shardId#958036, orderProposalId#958706L, originalReplenishmentRunId#960153L, supplierGroup#960154, supplier#960155, supplyingPlant#960156, orderDateTime#960157, parentItems#960158, previousOrderProposals#960160, itemGroup#960214]
Keys [2]: [shardId#958036, orderProposalId#958706L]
Functions [8]: [partial_max(originalReplenishmentRunId#960153L), partial_max(supplierGroup#960154), partial_max(supplier#960155), partial_max(supplyingPlant#960156), partial_max(orderDateTime#960157), partial_collect_list(itemGroup#960214, 0, 0), partial_collect_list(parentItems#960158, 0, 0), partial_collect_set(previousOrderProposals#960160, 0, 0)]
Aggregate Attributes [8]: [max#961381L, max#961382, max#961383, max#961384, max#961385, buf#961386, buf#961387, buf#961388]
Results [10]: [shardId#958036, orderProposalId#958706L, max#961389L, max#961390, max#961391, max#961392, max#961393, buf#961394, buf#961395, buf#961396]
(62) Exchange
Input [10]: [shardId#958036, orderProposalId#958706L, max#961389L, max#961390, max#961391, max#961392, max#961393, buf#961394, buf#961395, buf#961396]
Arguments: hashpartitioning(shardId#958036, orderProposalId#958706L, 20), ENSURE_REQUIREMENTS, [plan_id=375496]
(63) ObjectHashAggregate
Input [10]: [shardId#958036, orderProposalId#958706L, max#961389L, max#961390, max#961391, max#961392, max#961393, buf#961394, buf#961395, buf#961396]
Keys [2]: [shardId#958036, orderProposalId#958706L]
Functions [8]: [max(originalReplenishmentRunId#960153L), max(supplierGroup#960154), max(supplier#960155), max(supplyingPlant#960156), max(orderDateTime#960157), collect_list(itemGroup#960214, 0, 0), collect_list(parentItems#960158, 0, 0), collect_set(previousOrderProposals#960160, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#960153L)#960236L, max(supplierGroup#960154)#960237, max(supplier#960155)#960238, max(supplyingPlant#960156)#960239, max(orderDateTime#960157)#960240, collect_list(itemGroup#960214, 0, 0)#960241, collect_list(parentItems#960158, 0, 0)#960242, collect_set(previousOrderProposals#960160, 0, 0)#960243]
Results [10]: [shardId#958036, orderProposalId#958706L, max(originalReplenishmentRunId#960153L)#960236L AS originalReplenishmentRunId#960215L, max(supplierGroup#960154)#960237 AS supplierGroup#960216, max(supplier#960155)#960238 AS supplier#960217, max(supplyingPlant#960156)#960239 AS supplyingPlant#960218, max(orderDateTime#960157)#960240 AS orderDateTime#960219, collect_list(itemGroup#960214, 0, 0)#960241 AS itemGroups#960220, flatten(collect_list(parentItems#960158, 0, 0)#960242) AS parentItems#960221, flatten(collect_set(previousOrderProposals#960160, 0, 0)#960243) AS previousOrderProposals#960222]
(64) Project
Output [2]: [shardId#958036, struct(orderProposalId, orderProposalId#958706L, originalReplenishmentRunId, originalReplenishmentRunId#960215L, supplierGroup, supplierGroup#960216, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#960216) THEN supplier#960217 END, supplyingPlant, supplyingPlant#960218, orderDateTime, orderDateTime#960219, itemGroups, itemGroups#960220, previousOrderProposals, array_distinct(previousOrderProposals#960222), parentItems, parentItems#960221) AS orderProposal#960247]
Input [10]: [shardId#958036, orderProposalId#958706L, originalReplenishmentRunId#960215L, supplierGroup#960216, supplier#960217, supplyingPlant#960218, orderDateTime#960219, itemGroups#960220, parentItems#960221, previousOrderProposals#960222]
(65) Project
Output [11]: [shardId#958036, orderProposal#960247.orderProposalId AS _extract_orderProposalId#961013L, orderProposal#960247.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#961014L, orderProposal#960247.supplierGroup AS _extract_supplierGroup#961015, orderProposal#960247.supplier AS _extract_supplier#961016, orderProposal#960247.supplyingPlant AS _extract_supplyingPlant#961017, orderProposal#960247.orderDateTime AS _extract_orderDateTime#961018, orderProposal#960247.itemGroups AS _extract_itemGroups#961019, orderProposal#960247.previousOrderProposals AS _extract_previousOrderProposals#961020, orderProposal#960247.parentItems AS _extract_parentItems#961021, orderProposal#960247.orderProposalId AS _extract_orderProposalId#961022L]
Input [2]: [shardId#958036, orderProposal#960247]
(66) InMemoryTableScan
Output [3]: [shardId#960270, orderProposalId#960271L, optimizationGroups#960273]
Arguments: [shardId#960270, orderProposalId#960271L, optimizationGroups#960273], [isnotnull(orderProposalId#960271L)]
(67) InMemoryRelation
Arguments: [shardId#960270, orderProposalId#960271L, items#960272, optimizationGroups#960273, isOptimal#960274, optimizationInsights#960276], StorageLevel(disk, memory, 2 replicas)
(68) Filter [codegen id : 2]
Input [3]: [shardId#960270, orderProposalId#960271L, optimizationGroups#960273]
Condition : isnotnull(orderProposalId#960271L)
(69) BroadcastExchange
Input [3]: [shardId#960270, orderProposalId#960271L, optimizationGroups#960273]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=375503]
(70) InMemoryTableScan
Output [2]: [items#959889, shardId#959887]
Arguments: [items#959889, shardId#959887], [(size(items#959889.worklistShardItemId, true) > 0), isnotnull(items#959889.worklistShardItemId), (shardId#959887 = 0_1_10000002110)]
(71) InMemoryRelation
Arguments: [shardId#959887, orderProposalId#959888L, items#959889, optimizationGroups#959890, isOptimal#959891, optimizationInsights#959893], StorageLevel(disk, memory, 2 replicas)
(72) Filter [codegen id : 3]
Input [2]: [items#959889, shardId#959887]
Condition : (((size(items#959889.worklistShardItemId, true) > 0) AND isnotnull(items#959889.worklistShardItemId)) AND (shardId#959887 = 0_1_10000002110))
(73) Project [codegen id : 3]
Output [1]: [items#959889.worklistShardItemId AS _extract_worklistShardItemId#960918]
Input [2]: [items#959889, shardId#959887]
(74) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#960918]
Arguments: explode(_extract_worklistShardItemId#960918), false, [item#960277L]
(75) Project [codegen id : 3]
Output [1]: [item#960277L AS worklistShardItemId#960278L]
Input [1]: [item#960277L]
(76) BroadcastExchange
Input [1]: [worklistShardItemId#960278L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=375511]
(77) Scan parquet
Output [5]: [orderProposalId#960326L, isFallbackOrderOnly#960343, worklistShardItemId#960349L, shardId#960370, sequenceId#960348]
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/10000002110]
PartitionFilters: [isnotnull(shardId#960370), isnotnull(sequenceId#960348), (shardId#960370 = 0_1_10000002110), (sequenceId#960348 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(78) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#960326L, isFallbackOrderOnly#960343, worklistShardItemId#960349L, shardId#960370, sequenceId#960348]
(79) Filter [codegen id : 4]
Input [5]: [orderProposalId#960326L, isFallbackOrderOnly#960343, worklistShardItemId#960349L, shardId#960370, sequenceId#960348]
Condition : ((isnotnull(worklistShardItemId#960349L) AND NOT (isFallbackOrderOnly#960343 <=> true)) AND isnotnull(orderProposalId#960326L))
(80) Project [codegen id : 4]
Output [2]: [orderProposalId#960326L, worklistShardItemId#960349L]
Input [5]: [orderProposalId#960326L, isFallbackOrderOnly#960343, worklistShardItemId#960349L, shardId#960370, sequenceId#960348]
(81) Exchange
Input [2]: [orderProposalId#960326L, worklistShardItemId#960349L]
Arguments: hashpartitioning(worklistShardItemId#960349L, 20), REPARTITION_BY_NUM, [plan_id=375518]
(82) Project
Output [2]: [worklistShardItemId#960349L, orderProposalId#960326L]
Input [2]: [orderProposalId#960326L, worklistShardItemId#960349L]
(83) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#960278L]
Right keys [1]: [worklistShardItemId#960349L]
Join type: Inner
Join condition: None
(84) Project [codegen id : 5]
Output [1]: [orderProposalId#960326L]
Input [3]: [worklistShardItemId#960278L, worklistShardItemId#960349L, orderProposalId#960326L]
(85) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#960326L]
Keys [1]: [orderProposalId#960326L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#960326L]
(86) Exchange
Input [1]: [orderProposalId#960326L]
Arguments: hashpartitioning(orderProposalId#960326L, 20), ENSURE_REQUIREMENTS, [plan_id=375525]
(87) HashAggregate
Input [1]: [orderProposalId#960326L]
Keys [1]: [orderProposalId#960326L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#960326L]
(88) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#960271L]
Right keys [1]: [orderProposalId#960326L]
Join type: Inner
Join condition: None
(89) Project
Output [3]: [orderProposalId#960271L, shardId#960270, coalesce(transform(optimizationGroups#960273, lambdafunction(struct(optGroupId, lambda x_2519#960268.optGroupId, minOrderProfile, lambda x_2519#960268.minOrderProfile, assignmentDetails, lambda x_2519#960268.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_2519#960268.minOrderGoal.dimensionType, unit, lambda x_2519#960268.minOrderGoal.unit, unitUuid, lambda x_2519#960268.minOrderGoal.unitUuid, goalValue, lambda x_2519#960268.minOrderGoal.minOrderValue, calcValue, lambda x_2519#960268.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_2519#960268, false)), []) AS optimizationGroups#960267]
Input [4]: [shardId#960270, orderProposalId#960271L, optimizationGroups#960273, orderProposalId#960326L]
(90) BroadcastExchange
Input [3]: [orderProposalId#960271L, shardId#960270, optimizationGroups#960267]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, bigint, true], 0), isnull(input[0, bigint, true])),false), [plan_id=375531]
(91) BroadcastHashJoin
Left keys [4]: [coalesce(shardId#958036, ), isnull(shardId#958036), coalesce(_extract_orderProposalId#961022L, 0), isnull(_extract_orderProposalId#961022L)]
Right keys [4]: [coalesce(shardId#960270, ), isnull(shardId#960270), coalesce(orderProposalId#960271L, 0), isnull(orderProposalId#960271L)]
Join type: LeftOuter
Join condition: None
(92) Project
Output [2]: [shardId#958036, named_struct(orderProposalId, _extract_orderProposalId#961022L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#961014L, supplierGroup, _extract_supplierGroup#961015, optimizationGroups, coalesce(optimizationGroups#960267, []), supplier, _extract_supplier#961016, supplyingPlant, _extract_supplyingPlant#961017, orderDateTime, _extract_orderDateTime#961018, itemGroups, _extract_itemGroups#961019, previousOrderProposals, _extract_previousOrderProposals#961020, parentItems, _extract_parentItems#961021) AS orderProposal#960374]
Input [14]: [shardId#958036, _extract_orderProposalId#961013L, _extract_originalReplenishmentRunId#961014L, _extract_supplierGroup#961015, _extract_supplier#961016, _extract_supplyingPlant#961017, _extract_orderDateTime#961018, _extract_itemGroups#961019, _extract_previousOrderProposals#961020, _extract_parentItems#961021, _extract_orderProposalId#961022L, orderProposalId#960271L, shardId#960270, optimizationGroups#960267]
(93) Project
Output [3]: [shardId#958036, orderProposal#960374, CASE WHEN (size(orderProposal#960374.parentItems, true) > 2000) THEN xxhash64(orderProposal#960374.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#960374.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#962110L]
Input [2]: [orderProposal#960374, shardId#958036]
(94) ObjectHashAggregate
Input [3]: [shardId#958036, orderProposal#960374, resultSeparationId#962110L]
Keys [2]: [shardId#958036, resultSeparationId#962110L]
Functions [1]: [partial_collect_list(orderProposal#960374, 0, 0)]
Aggregate Attributes [1]: [buf#962149]
Results [3]: [shardId#958036, resultSeparationId#962110L, buf#962150]
(95) Exchange
Input [3]: [shardId#958036, resultSeparationId#962110L, buf#962150]
Arguments: hashpartitioning(shardId#958036, resultSeparationId#962110L, 20), ENSURE_REQUIREMENTS, [plan_id=375666]
(96) ObjectHashAggregate
Input [3]: [shardId#958036, resultSeparationId#962110L, buf#962150]
Keys [2]: [shardId#958036, resultSeparationId#962110L]
Functions [1]: [collect_list(orderProposal#960374, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#960374, 0, 0)#962118]
Results [3]: [shardId#958036, resultSeparationId#962110L, collect_list(orderProposal#960374, 0, 0)#962118 AS orderProposals#962114]
(97) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#962227L]
Results [1]: [count#962228L]
(98) Exchange
Input [1]: [count#962228L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=375690]
(99) HashAggregate [codegen id : 2]
Input [1]: [count#962228L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#962181L]
Results [1]: [count(1)#962181L AS count#962177L]