== Physical Plan ==
* HashAggregate (104)
+- Exchange (103)
+- * HashAggregate (102)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- ObjectHashAggregate (101)
+- Exchange (100)
+- ObjectHashAggregate (99)
+- Project (98)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- Project (97)
+- SortMergeJoin LeftOuter (96)
:- Sort (69)
: +- Exchange (68)
: +- Project (67)
: +- Project (66)
: +- ObjectHashAggregate (65)
: +- Exchange (64)
: +- ObjectHashAggregate (63)
: +- ObjectHashAggregate (62)
: +- Exchange (61)
: +- ObjectHashAggregate (60)
: +- Project (59)
: +- Project (58)
: +- Project (57)
: +- * Project (56)
: +- * Filter (55)
: +- InMemoryTableScan (5)
: +- InMemoryRelation (6)
: +- * Project (54)
: +- * SortMergeJoin LeftOuter (53)
: :- * Project (45)
: : +- * SortMergeJoin LeftOuter (44)
: : :- * Project (36)
: : : +- * SortMergeJoin LeftOuter (35)
: : : :- * Sort (29)
: : : : +- Exchange (28)
: : : : +- * Project (27)
: : : : +- * SortMergeJoin LeftOuter (26)
: : : : :- * Sort (18)
: : : : : +- Exchange (17)
: : : : : +- * Project (16)
: : : : : +- * Generate (15)
: : : : : +- * Filter (14)
: : : : : +- InMemoryTableScan (7)
: : : : : +- InMemoryRelation (8)
: : : : : +- * Filter (13)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (12)
: : : : : +- * Scan ExistingRDD (11)
: : : : +- * Sort (25)
: : : : +- * Project (24)
: : : : +- Exchange (23)
: : : : +- * Project (22)
: : : : +- * Filter (21)
: : : : +- * ColumnarToRow (20)
: : : : +- Scan parquet (19)
: : : +- * Sort (34)
: : : +- Exchange (33)
: : : +- * Project (32)
: : : +- * Filter (31)
: : : +- * Scan ExistingRDD (30)
: : +- * Sort (43)
: : +- ObjectHashAggregate (42)
: : +- Exchange (41)
: : +- ObjectHashAggregate (40)
: : +- * Project (39)
: : +- * Filter (38)
: : +- * Scan ExistingRDD (37)
: +- * Sort (52)
: +- ObjectHashAggregate (51)
: +- Exchange (50)
: +- ObjectHashAggregate (49)
: +- * Project (48)
: +- * Filter (47)
: +- * Scan ExistingRDD (46)
+- * Sort (95)
+- Exchange (94)
+- Project (93)
+- * BroadcastHashJoin Inner BuildLeft (92)
:- BroadcastExchange (73)
: +- * Filter (72)
: +- InMemoryTableScan (70)
: +- InMemoryRelation (71)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * HashAggregate (91)
+- Exchange (90)
+- * HashAggregate (89)
+- * Project (88)
+- * BroadcastHashJoin Inner BuildLeft (87)
:- BroadcastExchange (80)
: +- * Project (79)
: +- * Generate (78)
: +- * Project (77)
: +- * Filter (76)
: +- InMemoryTableScan (74)
: +- InMemoryRelation (75)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * Project (86)
+- Exchange (85)
+- * Project (84)
+- * Filter (83)
+- * ColumnarToRow (82)
+- Scan parquet (81)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#643168, resultSeparationId#657383L, orderProposals#657387], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#649023, shardId#643168]
Arguments: [orderProposal#649023, shardId#643168]
(4) InMemoryRelation
Arguments: [shardId#643168, orderProposal#649023], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#644594, channelStreamSpecificKpis#647216, constraintLabels#644606, constraintOperators#644607, constraintValues#644609, deliveryDateTime#644593, isFallbackOrderOnly#644596, logisticUnits#644611, measurements#644604, minimumOrderQuantity#644605, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, nextAvailabilityDateTime#644595, optimizationGroups#644612, orderDateTime#644592, orderProposalId#644574L, orderProposalItemGroupId#644576, orderProposalItemId#644575, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, originalReplenishmentRunId#644577L, plant#644588, previousOrderProposal#644580L, prodLocSpecificKpis#647201, product#644587, productGroup#644616, qty#643818, quantityAfterProdPlantOptimization#643817, quantityKpis#647229, shardId#643168, sourceOfSupplyUuid#644583, splitIndicator#644579L, subrange#644586, supplier#644585, supplierGroup#644584, supplyingPlant#644615]
Arguments: [availabilityDateTime#644594, channelStreamSpecificKpis#647216, constraintLabels#644606, constraintOperators#644607, constraintValues#644609, deliveryDateTime#644593, isFallbackOrderOnly#644596, logisticUnits#644611, measurements#644604, minimumOrderQuantity#644605, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, nextAvailabilityDateTime#644595, optimizationGroups#644612, orderDateTime#644592, orderProposalId#644574L, orderProposalItemGroupId#644576, orderProposalItemId#644575, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, originalReplenishmentRunId#644577L, plant#644588, ... 14 more fields], [NOT (isFallbackOrderOnly#644596 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, availabilityDateTime#644594, nextAvailabilityDateTime#644595, constraintValues#644609, constraintOperators#644607, constraintLabels#644606, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, netPriceAmount#644602, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#643168, items#643170]
Arguments: [shardId#643168, items#643170], [(size(items#643170, true) > 0), isnotnull(items#643170)]
(8) InMemoryRelation
Arguments: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, optimizationInsights#643174], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, optimizationInsights#643174]
Arguments: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, optimizationInsights#643174], [isnotnull(shardId#643168), (shardId#643168 = 0_1_10000002106)]
(10) InMemoryRelation
Arguments: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, lastModified#643173, optimizationInsights#643174], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, lastModified#643173, optimizationInsights#643174]
Arguments: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, lastModified#643173, optimizationInsights#643174], MapPartitionsRDD[30592] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, lastModified#643173, optimizationInsights#643174]
Condition : (isnotnull(shardId#643168) AND (shardId#643168 = 0_1_10000002106))
(13) Filter [codegen id : 1]
Input [6]: [shardId#643168, orderProposalId#643169L, items#643170, optimizationGroups#643171, isOptimal#643172, optimizationInsights#643174]
Condition : (isnotnull(shardId#643168) AND (shardId#643168 = 0_1_10000002106))
(14) Filter [codegen id : 1]
Input [2]: [shardId#643168, items#643170]
Condition : ((size(items#643170, true) > 0) AND isnotnull(items#643170))
(15) Generate [codegen id : 1]
Input [2]: [shardId#643168, items#643170]
Arguments: explode(items#643170), [shardId#643168], false, [item#643815]
(16) Project [codegen id : 1]
Output [4]: [shardId#643168, item#643815.worklistShardItemId AS worklistShardItemId#643816L, item#643815.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#643817, item#643815.qty AS qty#643818]
Input [2]: [shardId#643168, item#643815]
(17) Exchange
Input [4]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818]
Arguments: hashpartitioning(worklistShardItemId#643816L, 20), ENSURE_REQUIREMENTS, [plan_id=265242]
(18) Sort [codegen id : 2]
Input [4]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818]
Arguments: [worklistShardItemId#643816L ASC NULLS FIRST], false, 0
(19) Scan parquet
Output [38]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080, shardId#645081, sequenceId#645059]
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/10000002106]
PartitionFilters: [isnotnull(shardId#645081), isnotnull(sequenceId#645059), (shardId#645081 = 0_1_10000002106), (sequenceId#645059 = 2)]
PushedFilters: [IsNotNull(worklistShardItemId)]
ReadSchema: struct<orderProposalId:bigint,orderProposalItemId:string,supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:string,supplyingPlant:string,productGroup:string,product:string,orderDateTime:timestamp,availabilityDateTime:timestamp,nextAvailabilityDateTime:timestamp,sourceOfSupplyUuid:string,isFallbackOrderOnly:boolean,splitIndicator:bigint,previousOrderProposal:bigint,worklistShardItemId:bigint,orderProposalItemGroupId:string,externalProductId:string,externalPlantId:string,logisticUnits:array<struct<uom:string,uomUuid:string,numerator:int,denominator:int,isOrderUnit:boolean,isPreferred:boolean>>,orderQuantityBaseUom:string,orderQuantityBaseUomUuid:string,minimumOrderQuantity:double,constraintLabels:array<string>,constraintOperators:array<string>,constraintValues:array<double>,netPriceAmount:double,netPriceCurrencyCode:string,netPriceQuantity:double,netPriceQuantityUom:string,netPriceQuantityUomUuid:string,measurements:array<struct<value:double,dimensionType:int,dimensionCode:string,dimensionCodeUuid:string,isoCode:string>>,originalReplenishmentRunId:bigint,optimizationGroups:array<string>>
(20) ColumnarToRow [codegen id : 3]
Input [38]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080, shardId#645081, sequenceId#645059]
(21) Filter [codegen id : 3]
Input [38]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080, shardId#645081, sequenceId#645059]
Condition : isnotnull(worklistShardItemId#645060L)
(22) Project [codegen id : 3]
Output [36]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080]
Input [38]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080, shardId#645081, sequenceId#645059]
(23) Exchange
Input [36]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080]
Arguments: hashpartitioning(worklistShardItemId#645060L, 20), REPARTITION_BY_NUM, [plan_id=265252]
(24) Project [codegen id : 4]
Output [36]: [worklistShardItemId#645060L, orderProposalId#645037L, orderProposalItemId#645038, orderProposalItemGroupId#645061, originalReplenishmentRunId#645079L, splitIndicator#645056L, previousOrderProposal#645057L, sourceOfSupplyUuid#645051, supplierGroup#645039, supplier#645040, subrange#645043, product#645046, plant#645041, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, isFallbackOrderOnly#645054, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, netPriceAmount#645073, netPriceCurrencyCode#645074, measurements#645078, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, logisticUnits#645064, optimizationGroups#645080, externalProductId#645062, externalPlantId#645063, supplyingPlant#645044, productGroup#645045]
Input [36]: [orderProposalId#645037L, orderProposalItemId#645038, supplierGroup#645039, supplier#645040, plant#645041, deliveryDateTime#645042, subrange#645043, supplyingPlant#645044, productGroup#645045, product#645046, orderDateTime#645047, availabilityDateTime#645048, nextAvailabilityDateTime#645049, sourceOfSupplyUuid#645051, isFallbackOrderOnly#645054, splitIndicator#645056L, previousOrderProposal#645057L, worklistShardItemId#645060L, orderProposalItemGroupId#645061, externalProductId#645062, externalPlantId#645063, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, measurements#645078, originalReplenishmentRunId#645079L, optimizationGroups#645080]
(25) Sort [codegen id : 4]
Input [36]: [worklistShardItemId#645060L, orderProposalId#645037L, orderProposalItemId#645038, orderProposalItemGroupId#645061, originalReplenishmentRunId#645079L, splitIndicator#645056L, previousOrderProposal#645057L, sourceOfSupplyUuid#645051, supplierGroup#645039, supplier#645040, subrange#645043, product#645046, plant#645041, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, isFallbackOrderOnly#645054, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, netPriceAmount#645073, netPriceCurrencyCode#645074, measurements#645078, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, logisticUnits#645064, optimizationGroups#645080, externalProductId#645062, externalPlantId#645063, supplyingPlant#645044, productGroup#645045]
Arguments: [worklistShardItemId#645060L ASC NULLS FIRST], false, 0
(26) SortMergeJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#643816L]
Right keys [1]: [worklistShardItemId#645060L]
Join type: LeftOuter
Join condition: (shardId#643168 = 0_1_10000002106)
(27) Project [codegen id : 5]
Output [39]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054]
Input [40]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, worklistShardItemId#645060L, orderProposalId#645037L, orderProposalItemId#645038, orderProposalItemGroupId#645061, originalReplenishmentRunId#645079L, splitIndicator#645056L, previousOrderProposal#645057L, sourceOfSupplyUuid#645051, supplierGroup#645039, supplier#645040, subrange#645043, product#645046, plant#645041, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, isFallbackOrderOnly#645054, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, netPriceAmount#645073, netPriceCurrencyCode#645074, measurements#645078, minimumOrderQuantity#645067, constraintLabels#645068, constraintOperators#645069, constraintValues#645070, logisticUnits#645064, optimizationGroups#645080, externalProductId#645062, externalPlantId#645063, supplyingPlant#645044, productGroup#645045]
(28) Exchange
Input [39]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054]
Arguments: hashpartitioning(shardId#643168, worklistShardItemId#643816L, 20), ENSURE_REQUIREMENTS, [plan_id=265261]
(29) Sort [codegen id : 6]
Input [39]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054]
Arguments: [shardId#643168 ASC NULLS FIRST, worklistShardItemId#643816L ASC NULLS FIRST], false, 0
(30) Scan ExistingRDD [codegen id : 7]
Output [6]: [shardId#647194, worklistShardItemId#647195L, qty#647196, demandChannel#647197, demandStream#647198, kpis#647199]
Arguments: [shardId#647194, worklistShardItemId#647195L, qty#647196, demandChannel#647197, demandStream#647198, kpis#647199], MapPartitionsRDD[30878] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(31) Filter [codegen id : 7]
Input [6]: [shardId#647194, worklistShardItemId#647195L, qty#647196, demandChannel#647197, demandStream#647198, kpis#647199]
Condition : (((isnull(qty#647196) AND isnull(demandChannel#647197)) AND isnull(demandStream#647198)) AND (isnotnull(shardId#647194) AND isnotnull(worklistShardItemId#647195L)))
(32) Project [codegen id : 7]
Output [3]: [shardId#647194, worklistShardItemId#647195L, coalesce(kpis#647199, []) AS prodLocSpecificKpis#647200]
Input [6]: [shardId#647194, worklistShardItemId#647195L, qty#647196, demandChannel#647197, demandStream#647198, kpis#647199]
(33) Exchange
Input [3]: [shardId#647194, worklistShardItemId#647195L, prodLocSpecificKpis#647200]
Arguments: hashpartitioning(shardId#647194, worklistShardItemId#647195L, 20), ENSURE_REQUIREMENTS, [plan_id=265267]
(34) Sort [codegen id : 8]
Input [3]: [shardId#647194, worklistShardItemId#647195L, prodLocSpecificKpis#647200]
Arguments: [shardId#647194 ASC NULLS FIRST, worklistShardItemId#647195L ASC NULLS FIRST], false, 0
(35) SortMergeJoin [codegen id : 9]
Left keys [2]: [shardId#643168, worklistShardItemId#643816L]
Right keys [2]: [shardId#647194, worklistShardItemId#647195L]
Join type: LeftOuter
Join condition: None
(36) Project [codegen id : 9]
Output [40]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054, coalesce(prodLocSpecificKpis#647200, []) AS prodLocSpecificKpis#647201]
Input [42]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054, shardId#647194, worklistShardItemId#647195L, prodLocSpecificKpis#647200]
(37) Scan ExistingRDD [codegen id : 10]
Output [6]: [shardId#647210, worklistShardItemId#647211L, qty#647212, demandChannel#647213, demandStream#647214, kpis#647215]
Arguments: [shardId#647210, worklistShardItemId#647211L, qty#647212, demandChannel#647213, demandStream#647214, kpis#647215], MapPartitionsRDD[30878] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(38) Filter [codegen id : 10]
Input [6]: [shardId#647210, worklistShardItemId#647211L, qty#647212, demandChannel#647213, demandStream#647214, kpis#647215]
Condition : ((((isnull(qty#647212) AND isnotnull(demandChannel#647213)) AND isnotnull(demandStream#647214)) AND (size(kpis#647215, true) > 0)) AND (isnotnull(shardId#647210) AND isnotnull(worklistShardItemId#647211L)))
(39) Project [codegen id : 10]
Output [5]: [shardId#647210, worklistShardItemId#647211L, demandChannel#647213, demandStream#647214, kpis#647215]
Input [6]: [shardId#647210, worklistShardItemId#647211L, qty#647212, demandChannel#647213, demandStream#647214, kpis#647215]
(40) ObjectHashAggregate
Input [5]: [shardId#647210, worklistShardItemId#647211L, demandChannel#647213, demandStream#647214, kpis#647215]
Keys [2]: [shardId#647210, worklistShardItemId#647211L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#647213, demandStream, demandStream#647214, kpis, kpis#647215), 0, 0)]
Aggregate Attributes [1]: [buf#648290]
Results [3]: [shardId#647210, worklistShardItemId#647211L, buf#648291]
(41) Exchange
Input [3]: [shardId#647210, worklistShardItemId#647211L, buf#648291]
Arguments: hashpartitioning(shardId#647210, worklistShardItemId#647211L, 20), ENSURE_REQUIREMENTS, [plan_id=265278]
(42) ObjectHashAggregate
Input [3]: [shardId#647210, worklistShardItemId#647211L, buf#648291]
Keys [2]: [shardId#647210, worklistShardItemId#647211L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#647213, demandStream, demandStream#647214, kpis, kpis#647215), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#647213, demandStream, demandStream#647214, kpis, kpis#647215), 0, 0)#647209]
Results [3]: [shardId#647210, worklistShardItemId#647211L, collect_list(struct(demandChannel, demandChannel#647213, demandStream, demandStream#647214, kpis, kpis#647215), 0, 0)#647209 AS channelStreamSpecificKpis#647202]
(43) Sort [codegen id : 11]
Input [3]: [shardId#647210, worklistShardItemId#647211L, channelStreamSpecificKpis#647202]
Arguments: [shardId#647210 ASC NULLS FIRST, worklistShardItemId#647211L ASC NULLS FIRST], false, 0
(44) SortMergeJoin [codegen id : 12]
Left keys [2]: [shardId#643168, worklistShardItemId#643816L]
Right keys [2]: [shardId#647210, worklistShardItemId#647211L]
Join type: LeftOuter
Join condition: None
(45) Project [codegen id : 12]
Output [41]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054, prodLocSpecificKpis#647201, coalesce(channelStreamSpecificKpis#647202, []) AS channelStreamSpecificKpis#647216]
Input [43]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054, prodLocSpecificKpis#647201, shardId#647210, worklistShardItemId#647211L, channelStreamSpecificKpis#647202]
(46) Scan ExistingRDD [codegen id : 13]
Output [6]: [shardId#647223, worklistShardItemId#647224L, qty#647225, demandChannel#647226, demandStream#647227, kpis#647228]
Arguments: [shardId#647223, worklistShardItemId#647224L, qty#647225, demandChannel#647226, demandStream#647227, kpis#647228], MapPartitionsRDD[30878] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(47) Filter [codegen id : 13]
Input [6]: [shardId#647223, worklistShardItemId#647224L, qty#647225, demandChannel#647226, demandStream#647227, kpis#647228]
Condition : ((isnotnull(qty#647225) AND isnotnull(kpis#647228)) AND (isnotnull(shardId#647223) AND isnotnull(worklistShardItemId#647224L)))
(48) Project [codegen id : 13]
Output [4]: [shardId#647223, worklistShardItemId#647224L, qty#647225, kpis#647228]
Input [6]: [shardId#647223, worklistShardItemId#647224L, qty#647225, demandChannel#647226, demandStream#647227, kpis#647228]
(49) ObjectHashAggregate
Input [4]: [shardId#647223, worklistShardItemId#647224L, qty#647225, kpis#647228]
Keys [2]: [shardId#647223, worklistShardItemId#647224L]
Functions [1]: [partial_collect_list(struct(qty, qty#647225, kpis, kpis#647228), 0, 0)]
Aggregate Attributes [1]: [buf#648292]
Results [3]: [shardId#647223, worklistShardItemId#647224L, buf#648293]
(50) Exchange
Input [3]: [shardId#647223, worklistShardItemId#647224L, buf#648293]
Arguments: hashpartitioning(shardId#647223, worklistShardItemId#647224L, 20), ENSURE_REQUIREMENTS, [plan_id=265290]
(51) ObjectHashAggregate
Input [3]: [shardId#647223, worklistShardItemId#647224L, buf#648293]
Keys [2]: [shardId#647223, worklistShardItemId#647224L]
Functions [1]: [collect_list(struct(qty, qty#647225, kpis, kpis#647228), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#647225, kpis, kpis#647228), 0, 0)#647222]
Results [3]: [shardId#647223, worklistShardItemId#647224L, map_from_entries(collect_list(struct(qty, qty#647225, kpis, kpis#647228), 0, 0)#647222) AS quantityKpis#647217]
(52) Sort [codegen id : 14]
Input [3]: [shardId#647223, worklistShardItemId#647224L, quantityKpis#647217]
Arguments: [shardId#647223 ASC NULLS FIRST, worklistShardItemId#647224L ASC NULLS FIRST], false, 0
(53) SortMergeJoin [codegen id : 15]
Left keys [2]: [shardId#643168, worklistShardItemId#643816L]
Right keys [2]: [shardId#647223, worklistShardItemId#647224L]
Join type: LeftOuter
Join condition: None
(54) Project [codegen id : 15]
Output [42]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054, prodLocSpecificKpis#647201, channelStreamSpecificKpis#647216, coalesce(quantityKpis#647217, map(keys: [], values: [])) AS quantityKpis#647229]
Input [44]: [shardId#643168, worklistShardItemId#643816L, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#645037L, originalReplenishmentRunId#645079L, supplierGroup#645039, supplier#645040, supplyingPlant#645044, productGroup#645045, product#645046, plant#645041, subrange#645043, orderDateTime#645047, deliveryDateTime#645042, availabilityDateTime#645048, nextAvailabilityDateTime#645049, constraintValues#645070, constraintOperators#645069, constraintLabels#645068, logisticUnits#645064, orderQuantityBaseUom#645065, orderQuantityBaseUomUuid#645066, splitIndicator#645056L, netPriceAmount#645073, netPriceCurrencyCode#645074, netPriceQuantity#645075, netPriceQuantityUom#645076, netPriceQuantityUomUuid#645077, sourceOfSupplyUuid#645051, minimumOrderQuantity#645067, orderProposalItemId#645038, orderProposalItemGroupId#645061, optimizationGroups#645080, measurements#645078, externalProductId#645062, externalPlantId#645063, previousOrderProposal#645057L, isFallbackOrderOnly#645054, prodLocSpecificKpis#647201, channelStreamSpecificKpis#647216, shardId#647223, worklistShardItemId#647224L, quantityKpis#647217]
(55) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#644594, channelStreamSpecificKpis#647216, constraintLabels#644606, constraintOperators#644607, constraintValues#644609, deliveryDateTime#644593, isFallbackOrderOnly#644596, logisticUnits#644611, measurements#644604, minimumOrderQuantity#644605, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, nextAvailabilityDateTime#644595, optimizationGroups#644612, orderDateTime#644592, orderProposalId#644574L, orderProposalItemGroupId#644576, orderProposalItemId#644575, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, originalReplenishmentRunId#644577L, plant#644588, previousOrderProposal#644580L, prodLocSpecificKpis#647201, product#644587, productGroup#644616, qty#643818, quantityAfterProdPlantOptimization#643817, quantityKpis#647229, shardId#643168, sourceOfSupplyUuid#644583, splitIndicator#644579L, subrange#644586, supplier#644585, supplierGroup#644584, supplyingPlant#644615]
Condition : NOT (isFallbackOrderOnly#644596 <=> true)
(56) Project [codegen id : 1]
Output [36]: [shardId#643168, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, availabilityDateTime#644594, nextAvailabilityDateTime#644595, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, sourceOfSupplyUuid#644583, minimumOrderQuantity#644605, orderProposalItemId#644575, orderProposalItemGroupId#644576, optimizationGroups#644612, measurements#644604, previousOrderProposal#644580L, prodLocSpecificKpis#647201, channelStreamSpecificKpis#647216, quantityKpis#647229, arrays_zip(constraintLabels#644606, constraintOperators#644607, constraintValues#644609, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#648543]
Input [39]: [availabilityDateTime#644594, channelStreamSpecificKpis#647216, constraintLabels#644606, constraintOperators#644607, constraintValues#644609, deliveryDateTime#644593, isFallbackOrderOnly#644596, logisticUnits#644611, measurements#644604, minimumOrderQuantity#644605, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, nextAvailabilityDateTime#644595, optimizationGroups#644612, orderDateTime#644592, orderProposalId#644574L, orderProposalItemGroupId#644576, orderProposalItemId#644575, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, originalReplenishmentRunId#644577L, plant#644588, previousOrderProposal#644580L, prodLocSpecificKpis#647201, product#644587, productGroup#644616, qty#643818, quantityAfterProdPlantOptimization#643817, quantityKpis#647229, shardId#643168, sourceOfSupplyUuid#644583, splitIndicator#644579L, subrange#644586, supplier#644585, supplierGroup#644584, supplyingPlant#644615]
(57) Project
Output [37]: [shardId#643168, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, availabilityDateTime#644594, nextAvailabilityDateTime#644595, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, sourceOfSupplyUuid#644583, orderProposalItemId#644575, orderProposalItemGroupId#644576, optimizationGroups#644612, measurements#644604, previousOrderProposal#644580L, prodLocSpecificKpis#647201, channelStreamSpecificKpis#647216, quantityKpis#647229, struct(minServiceLevel, array_min(filter(constraintStructArray#648543, lambdafunction((lambda x_1656#648550.constraintLabels = ServiceLevel), lambda x_1656#648550, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#648543, lambdafunction((lambda x_1657#648551.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_1657#648551, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#648543, lambdafunction((lambda x_1658#648552.constraintLabels = RangeOfCoverage), lambda x_1658#648552, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#644605, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#647201, lambdafunction((lambda x_1659#648553.label = NonListingStartTimestamp), lambda x_1659#648553, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#648549, CASE WHEN (qty#643818 <=> quantityAfterProdPlantOptimization#643817) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#643818 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648621.isOrderUnit, lambda x_1660#648621, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648622.isOrderUnit, lambda x_1660#648622, false)), 1, None, false).numerator as double))), qty#643818), orderQuantityUom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648623.isOrderUnit, lambda x_1660#648623, false)), 1, None, false).uom, orderQuantityBaseUom#644597), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648624.isOrderUnit, lambda x_1660#648624, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598), candidateOrderQuantityInBaseUnit, qty#643818, orderQuantityBaseUom, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#644598, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1662#648625.isPreferred AND (((qty#643818 * cast(lambda x_1662#648625.denominator as double)) % cast(lambda x_1662#648625.numerator as double)) = 0.0)), lambda x_1662#648625, false)), lambdafunction(struct(inPreferredQuantity, ((qty#643818 * cast(lambda x_1663#648663.denominator as double)) / cast(lambda x_1663#648663.numerator as double)), uom, lambda x_1663#648663.uom, uomUuid, lambda x_1663#648663.uomUuid), lambda x_1663#648663, false))).inPreferredQuantity, coalesce((qty#643818 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648626.isOrderUnit, lambda x_1661#648626, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648627.isOrderUnit, lambda x_1661#648627, false)), 1, None, false).numerator as double))), qty#643818)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1662#648628.isPreferred AND (((qty#643818 * cast(lambda x_1662#648628.denominator as double)) % cast(lambda x_1662#648628.numerator as double)) = 0.0)), lambda x_1662#648628, false)), lambdafunction(struct(inPreferredQuantity, ((qty#643818 * cast(lambda x_1663#648664.denominator as double)) / cast(lambda x_1663#648664.numerator as double)), uom, lambda x_1663#648664.uom, uomUuid, lambda x_1663#648664.uomUuid), lambda x_1663#648664, false))).uom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648629.isOrderUnit, lambda x_1661#648629, false)), 1, None, false).uom, orderQuantityBaseUom#644597)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1662#648630.isPreferred AND (((qty#643818 * cast(lambda x_1662#648630.denominator as double)) % cast(lambda x_1662#648630.numerator as double)) = 0.0)), lambda x_1662#648630, false)), lambdafunction(struct(inPreferredQuantity, ((qty#643818 * cast(lambda x_1663#648665.denominator as double)) / cast(lambda x_1663#648665.numerator as double)), uom, lambda x_1663#648665.uom, uomUuid, lambda x_1663#648665.uomUuid), lambda x_1663#648665, false))).uomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648631.isOrderUnit, lambda x_1661#648631, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598)), serviceLevel, coalesce(filter(element_at(quantityKpis#647229, qty#643818, None, false), lambdafunction((lambda x_1668#648632.label = ServiceLevel), lambda x_1668#648632, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#643818 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648635.isOrderUnit, lambda x_1660#648635, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648636.isOrderUnit, lambda x_1660#648636, false)), 1, None, false).numerator as double))), qty#643818), orderQuantityUom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648637.isOrderUnit, lambda x_1660#648637, false)), 1, None, false).uom, orderQuantityBaseUom#644597), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1660#648638.isOrderUnit, lambda x_1660#648638, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598), candidateOrderQuantityInBaseUnit, qty#643818, orderQuantityBaseUom, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#644598, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1662#648639.isPreferred AND (((qty#643818 * cast(lambda x_1662#648639.denominator as double)) % cast(lambda x_1662#648639.numerator as double)) = 0.0)), lambda x_1662#648639, false)), lambdafunction(struct(inPreferredQuantity, ((qty#643818 * cast(lambda x_1663#648666.denominator as double)) / cast(lambda x_1663#648666.numerator as double)), uom, lambda x_1663#648666.uom, uomUuid, lambda x_1663#648666.uomUuid), lambda x_1663#648666, false))).inPreferredQuantity, coalesce((qty#643818 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648640.isOrderUnit, lambda x_1661#648640, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648641.isOrderUnit, lambda x_1661#648641, false)), 1, None, false).numerator as double))), qty#643818)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1662#648642.isPreferred AND (((qty#643818 * cast(lambda x_1662#648642.denominator as double)) % cast(lambda x_1662#648642.numerator as double)) = 0.0)), lambda x_1662#648642, false)), lambdafunction(struct(inPreferredQuantity, ((qty#643818 * cast(lambda x_1663#648667.denominator as double)) / cast(lambda x_1663#648667.numerator as double)), uom, lambda x_1663#648667.uom, uomUuid, lambda x_1663#648667.uomUuid), lambda x_1663#648667, false))).uom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648643.isOrderUnit, lambda x_1661#648643, false)), 1, None, false).uom, orderQuantityBaseUom#644597)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1662#648644.isPreferred AND (((qty#643818 * cast(lambda x_1662#648644.denominator as double)) % cast(lambda x_1662#648644.numerator as double)) = 0.0)), lambda x_1662#648644, false)), lambdafunction(struct(inPreferredQuantity, ((qty#643818 * cast(lambda x_1663#648668.denominator as double)) / cast(lambda x_1663#648668.numerator as double)), uom, lambda x_1663#648668.uom, uomUuid, lambda x_1663#648668.uomUuid), lambda x_1663#648668, false))).uomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1661#648645.isOrderUnit, lambda x_1661#648645, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598)), serviceLevel, coalesce(filter(element_at(quantityKpis#647229, qty#643818, None, false), lambdafunction((lambda x_1671#648646.label = ServiceLevel), lambda x_1671#648646, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#643817 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1664#648649.isOrderUnit, lambda x_1664#648649, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1664#648650.isOrderUnit, lambda x_1664#648650, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#643817), orderQuantityUom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1664#648651.isOrderUnit, lambda x_1664#648651, false)), 1, None, false).uom, orderQuantityBaseUom#644597), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1664#648652.isOrderUnit, lambda x_1664#648652, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#643817, orderQuantityBaseUom, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#644598, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1666#648653.isPreferred AND (((quantityAfterProdPlantOptimization#643817 * cast(lambda x_1666#648653.denominator as double)) % cast(lambda x_1666#648653.numerator as double)) = 0.0)), lambda x_1666#648653, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#643817 * cast(lambda x_1667#648669.denominator as double)) / cast(lambda x_1667#648669.numerator as double)), uom, lambda x_1667#648669.uom, uomUuid, lambda x_1667#648669.uomUuid), lambda x_1667#648669, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#643817 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1665#648654.isOrderUnit, lambda x_1665#648654, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1665#648655.isOrderUnit, lambda x_1665#648655, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#643817)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1666#648656.isPreferred AND (((quantityAfterProdPlantOptimization#643817 * cast(lambda x_1666#648656.denominator as double)) % cast(lambda x_1666#648656.numerator as double)) = 0.0)), lambda x_1666#648656, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#643817 * cast(lambda x_1667#648670.denominator as double)) / cast(lambda x_1667#648670.numerator as double)), uom, lambda x_1667#648670.uom, uomUuid, lambda x_1667#648670.uomUuid), lambda x_1667#648670, false))).uom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1665#648657.isOrderUnit, lambda x_1665#648657, false)), 1, None, false).uom, orderQuantityBaseUom#644597)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#644611, lambdafunction((lambda x_1666#648658.isPreferred AND (((quantityAfterProdPlantOptimization#643817 * cast(lambda x_1666#648658.denominator as double)) % cast(lambda x_1666#648658.numerator as double)) = 0.0)), lambda x_1666#648658, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#643817 * cast(lambda x_1667#648671.denominator as double)) / cast(lambda x_1667#648671.numerator as double)), uom, lambda x_1667#648671.uom, uomUuid, lambda x_1667#648671.uomUuid), lambda x_1667#648671, false))).uomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1665#648659.isOrderUnit, lambda x_1665#648659, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598)), serviceLevel, coalesce(filter(element_at(quantityKpis#647229, quantityAfterProdPlantOptimization#643817, None, false), lambdafunction((lambda x_1674#648660.label = ServiceLevel), lambda x_1674#648660, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#648620, coalesce(filter(prodLocSpecificKpis#647201, lambdafunction((lambda x_1677#648673.label = InitialStockQty), lambda x_1677#648673, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#648672, coalesce(filter(prodLocSpecificKpis#647201, lambdafunction((lambda x_1678#648675.label = DemandPeriodEndTimestamp), lambda x_1678#648675, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#648674]
Input [36]: [shardId#643168, quantityAfterProdPlantOptimization#643817, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, availabilityDateTime#644594, nextAvailabilityDateTime#644595, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, sourceOfSupplyUuid#644583, minimumOrderQuantity#644605, orderProposalItemId#644575, orderProposalItemGroupId#644576, optimizationGroups#644612, measurements#644604, previousOrderProposal#644580L, prodLocSpecificKpis#647201, channelStreamSpecificKpis#647216, quantityKpis#647229, constraintStructArray#648543]
(58) Project
Output [21]: [shardId#643168, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, orderProposalItemId#644575, orderProposalItemGroupId#644576, previousOrderProposal#644580L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#644585, supplyingPlant, supplyingPlant#644615, productGroup, productGroup#644616, product, product#644587, plant, plant#644588, supplierSubRange, subrange#644586, sourceOfSupplyUuid, sourceOfSupplyUuid#644583, deliveryDateTime, deliveryDateTime#644593, unitPrice, netPriceAmount#644602, unitPriceCurrency, netPriceCurrencyCode#644603, unitPriceQuantity, ... 37 more fields) AS parentItem#648754]
Input [37]: [shardId#643168, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, availabilityDateTime#644594, nextAvailabilityDateTime#644595, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, netPriceAmount#644602, netPriceCurrencyCode#644603, netPriceQuantity#644599, netPriceQuantityUom#644600, netPriceQuantityUomUuid#644601, sourceOfSupplyUuid#644583, orderProposalItemId#644575, orderProposalItemGroupId#644576, optimizationGroups#644612, measurements#644604, previousOrderProposal#644580L, prodLocSpecificKpis#647201, channelStreamSpecificKpis#647216, quantityKpis#647229, constraintBenchmark#648549, calculationAnalysis#648620, inventoryDateTime#648672, demandPeriodEndDateTime#648674]
(59) Project
Output [12]: [shardId#643168, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, orderDateTime#644592, splitIndicator#644579L, orderProposalItemGroupId#644576, previousOrderProposal#644580L, parentItem#648754, struct(itemId, orderProposalItemId#644575, supplier, supplier#644585, supplyingPlant, supplyingPlant#644615, productGroup, productGroup#644616, product, product#644587, plant, plant#644588, supplierSubRange, subrange#644586, deliveryDateTime, deliveryDateTime#644593, orderQuantity, coalesce((qty#643818 * (cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1702#648788.isOrderUnit, lambda x_1702#648788, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1702#648789.isOrderUnit, lambda x_1702#648789, false)), 1, None, false).numerator as double))), qty#643818), orderQuantityUom, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1702#648790.isOrderUnit, lambda x_1702#648790, false)), 1, None, false).uom, orderQuantityBaseUom#644597), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#644611, lambdafunction(lambda x_1702#648791.isOrderUnit, lambda x_1702#648791, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#644598), orderQuantityInBaseUnit, qty#643818, orderQuantityBaseUom, ... 13 more fields) AS item#648785]
Input [21]: [shardId#643168, qty#643818, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, productGroup#644616, product#644587, plant#644588, subrange#644586, orderDateTime#644592, deliveryDateTime#644593, logisticUnits#644611, orderQuantityBaseUom#644597, orderQuantityBaseUomUuid#644598, splitIndicator#644579L, orderProposalItemId#644575, orderProposalItemGroupId#644576, previousOrderProposal#644580L, parentItem#648754]
(60) ObjectHashAggregate
Input [12]: [shardId#643168, orderProposalId#644574L, originalReplenishmentRunId#644577L, supplierGroup#644584, supplier#644585, supplyingPlant#644615, orderDateTime#644592, splitIndicator#644579L, orderProposalItemGroupId#644576, previousOrderProposal#644580L, parentItem#648754, item#648785]
Keys [4]: [shardId#643168, orderProposalId#644574L, splitIndicator#644579L, orderProposalItemGroupId#644576]
Functions [8]: [partial_max(originalReplenishmentRunId#644577L), partial_max(supplierGroup#644584), partial_max(supplier#644585), partial_max(supplyingPlant#644615), partial_max(orderDateTime#644592), partial_collect_list(parentItem#648754, 0, 0), partial_collect_set(previousOrderProposal#644580L, 0, 0), partial_collect_list(item#648785, 0, 0)]
Aggregate Attributes [8]: [max#650116L, max#650117, max#650118, max#650119, max#650120, buf#650121, buf#650122, buf#650123]
Results [12]: [shardId#643168, orderProposalId#644574L, splitIndicator#644579L, orderProposalItemGroupId#644576, max#650124L, max#650125, max#650126, max#650127, max#650128, buf#650129, buf#650130, buf#650131]
(61) Exchange
Input [12]: [shardId#643168, orderProposalId#644574L, splitIndicator#644579L, orderProposalItemGroupId#644576, max#650124L, max#650125, max#650126, max#650127, max#650128, buf#650129, buf#650130, buf#650131]
Arguments: hashpartitioning(shardId#643168, orderProposalId#644574L, splitIndicator#644579L, orderProposalItemGroupId#644576, 20), ENSURE_REQUIREMENTS, [plan_id=265564]
(62) ObjectHashAggregate
Input [12]: [shardId#643168, orderProposalId#644574L, splitIndicator#644579L, orderProposalItemGroupId#644576, max#650124L, max#650125, max#650126, max#650127, max#650128, buf#650129, buf#650130, buf#650131]
Keys [4]: [shardId#643168, orderProposalId#644574L, splitIndicator#644579L, orderProposalItemGroupId#644576]
Functions [8]: [max(originalReplenishmentRunId#644577L), max(supplierGroup#644584), max(supplier#644585), max(supplyingPlant#644615), max(orderDateTime#644592), collect_list(parentItem#648754, 0, 0), collect_set(previousOrderProposal#644580L, 0, 0), collect_list(item#648785, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#644577L)#648854L, max(supplierGroup#644584)#648855, max(supplier#644585)#648856, max(supplyingPlant#644615)#648857, max(orderDateTime#644592)#648858, collect_list(parentItem#648754, 0, 0)#648859, collect_set(previousOrderProposal#644580L, 0, 0)#648861, collect_list(item#648785, 0, 0)#648860]
Results [10]: [shardId#643168, orderProposalId#644574L, max(originalReplenishmentRunId#644577L)#648854L AS originalReplenishmentRunId#648802L, max(supplierGroup#644584)#648855 AS supplierGroup#648803, max(supplier#644585)#648856 AS supplier#648804, max(supplyingPlant#644615)#648857 AS supplyingPlant#648805, max(orderDateTime#644592)#648858 AS orderDateTime#648806, collect_list(parentItem#648754, 0, 0)#648859 AS parentItems#648807, collect_set(previousOrderProposal#644580L, 0, 0)#648861 AS previousOrderProposals#648809, struct(itemGroupId, coalesce(orderProposalItemGroupId#644576, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#648785, 0, 0)#648860) AS itemGroup#648863]
(63) ObjectHashAggregate
Input [10]: [shardId#643168, orderProposalId#644574L, originalReplenishmentRunId#648802L, supplierGroup#648803, supplier#648804, supplyingPlant#648805, orderDateTime#648806, parentItems#648807, previousOrderProposals#648809, itemGroup#648863]
Keys [2]: [shardId#643168, orderProposalId#644574L]
Functions [8]: [partial_max(originalReplenishmentRunId#648802L), partial_max(supplierGroup#648803), partial_max(supplier#648804), partial_max(supplyingPlant#648805), partial_max(orderDateTime#648806), partial_collect_list(itemGroup#648863, 0, 0), partial_collect_list(parentItems#648807, 0, 0), partial_collect_set(previousOrderProposals#648809, 0, 0)]
Aggregate Attributes [8]: [max#650100L, max#650101, max#650102, max#650103, max#650104, buf#650105, buf#650106, buf#650107]
Results [10]: [shardId#643168, orderProposalId#644574L, max#650108L, max#650109, max#650110, max#650111, max#650112, buf#650113, buf#650114, buf#650115]
(64) Exchange
Input [10]: [shardId#643168, orderProposalId#644574L, max#650108L, max#650109, max#650110, max#650111, max#650112, buf#650113, buf#650114, buf#650115]
Arguments: hashpartitioning(shardId#643168, orderProposalId#644574L, 20), ENSURE_REQUIREMENTS, [plan_id=265567]
(65) ObjectHashAggregate
Input [10]: [shardId#643168, orderProposalId#644574L, max#650108L, max#650109, max#650110, max#650111, max#650112, buf#650113, buf#650114, buf#650115]
Keys [2]: [shardId#643168, orderProposalId#644574L]
Functions [8]: [max(originalReplenishmentRunId#648802L), max(supplierGroup#648803), max(supplier#648804), max(supplyingPlant#648805), max(orderDateTime#648806), collect_list(itemGroup#648863, 0, 0), collect_list(parentItems#648807, 0, 0), collect_set(previousOrderProposals#648809, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#648802L)#648885L, max(supplierGroup#648803)#648886, max(supplier#648804)#648887, max(supplyingPlant#648805)#648888, max(orderDateTime#648806)#648889, collect_list(itemGroup#648863, 0, 0)#648890, collect_list(parentItems#648807, 0, 0)#648891, collect_set(previousOrderProposals#648809, 0, 0)#648892]
Results [10]: [shardId#643168, orderProposalId#644574L, max(originalReplenishmentRunId#648802L)#648885L AS originalReplenishmentRunId#648864L, max(supplierGroup#648803)#648886 AS supplierGroup#648865, max(supplier#648804)#648887 AS supplier#648866, max(supplyingPlant#648805)#648888 AS supplyingPlant#648867, max(orderDateTime#648806)#648889 AS orderDateTime#648868, collect_list(itemGroup#648863, 0, 0)#648890 AS itemGroups#648869, flatten(collect_list(parentItems#648807, 0, 0)#648891) AS parentItems#648870, flatten(collect_set(previousOrderProposals#648809, 0, 0)#648892) AS previousOrderProposals#648871]
(66) Project
Output [2]: [shardId#643168, struct(orderProposalId, orderProposalId#644574L, originalReplenishmentRunId, originalReplenishmentRunId#648864L, supplierGroup, supplierGroup#648865, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#648865) THEN supplier#648866 END, supplyingPlant, supplyingPlant#648867, orderDateTime, orderDateTime#648868, itemGroups, itemGroups#648869, previousOrderProposals, array_distinct(previousOrderProposals#648871), parentItems, parentItems#648870) AS orderProposal#648896]
Input [10]: [shardId#643168, orderProposalId#644574L, originalReplenishmentRunId#648864L, supplierGroup#648865, supplier#648866, supplyingPlant#648867, orderDateTime#648868, itemGroups#648869, parentItems#648870, previousOrderProposals#648871]
(67) Project
Output [11]: [shardId#643168, orderProposal#648896.orderProposalId AS _extract_orderProposalId#649732L, orderProposal#648896.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#649733L, orderProposal#648896.supplierGroup AS _extract_supplierGroup#649734, orderProposal#648896.supplier AS _extract_supplier#649735, orderProposal#648896.supplyingPlant AS _extract_supplyingPlant#649736, orderProposal#648896.orderDateTime AS _extract_orderDateTime#649737, orderProposal#648896.itemGroups AS _extract_itemGroups#649738, orderProposal#648896.previousOrderProposals AS _extract_previousOrderProposals#649739, orderProposal#648896.parentItems AS _extract_parentItems#649740, orderProposal#648896.orderProposalId AS _extract_orderProposalId#649741L]
Input [2]: [shardId#643168, orderProposal#648896]
(68) Exchange
Input [11]: [shardId#643168, _extract_orderProposalId#649732L, _extract_originalReplenishmentRunId#649733L, _extract_supplierGroup#649734, _extract_supplier#649735, _extract_supplyingPlant#649736, _extract_orderDateTime#649737, _extract_itemGroups#649738, _extract_previousOrderProposals#649739, _extract_parentItems#649740, _extract_orderProposalId#649741L]
Arguments: hashpartitioning(coalesce(shardId#643168, ), isnull(shardId#643168), coalesce(_extract_orderProposalId#649741L, 0), isnull(_extract_orderProposalId#649741L), 20), ENSURE_REQUIREMENTS, [plan_id=265571]
(69) Sort
Input [11]: [shardId#643168, _extract_orderProposalId#649732L, _extract_originalReplenishmentRunId#649733L, _extract_supplierGroup#649734, _extract_supplier#649735, _extract_supplyingPlant#649736, _extract_orderDateTime#649737, _extract_itemGroups#649738, _extract_previousOrderProposals#649739, _extract_parentItems#649740, _extract_orderProposalId#649741L]
Arguments: [coalesce(shardId#643168, ) ASC NULLS FIRST, isnull(shardId#643168) ASC NULLS FIRST, coalesce(_extract_orderProposalId#649741L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#649741L) ASC NULLS FIRST], false, 0
(70) InMemoryTableScan
Output [3]: [shardId#648919, orderProposalId#648920L, optimizationGroups#648922]
Arguments: [shardId#648919, orderProposalId#648920L, optimizationGroups#648922], [isnotnull(orderProposalId#648920L)]
(71) InMemoryRelation
Arguments: [shardId#648919, orderProposalId#648920L, items#648921, optimizationGroups#648922, isOptimal#648923, optimizationInsights#648925], StorageLevel(disk, memory, 2 replicas)
(72) Filter [codegen id : 2]
Input [3]: [shardId#648919, orderProposalId#648920L, optimizationGroups#648922]
Condition : isnotnull(orderProposalId#648920L)
(73) BroadcastExchange
Input [3]: [shardId#648919, orderProposalId#648920L, optimizationGroups#648922]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=265576]
(74) InMemoryTableScan
Output [2]: [items#648538, shardId#648536]
Arguments: [items#648538, shardId#648536], [(size(items#648538.worklistShardItemId, true) > 0), isnotnull(items#648538.worklistShardItemId), (shardId#648536 = 0_1_10000002106)]
(75) InMemoryRelation
Arguments: [shardId#648536, orderProposalId#648537L, items#648538, optimizationGroups#648539, isOptimal#648540, optimizationInsights#648542], StorageLevel(disk, memory, 2 replicas)
(76) Filter [codegen id : 3]
Input [2]: [items#648538, shardId#648536]
Condition : (((size(items#648538.worklistShardItemId, true) > 0) AND isnotnull(items#648538.worklistShardItemId)) AND (shardId#648536 = 0_1_10000002106))
(77) Project [codegen id : 3]
Output [1]: [items#648538.worklistShardItemId AS _extract_worklistShardItemId#649567]
Input [2]: [items#648538, shardId#648536]
(78) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#649567]
Arguments: explode(_extract_worklistShardItemId#649567), false, [item#648926L]
(79) Project [codegen id : 3]
Output [1]: [item#648926L AS worklistShardItemId#648927L]
Input [1]: [item#648926L]
(80) BroadcastExchange
Input [1]: [worklistShardItemId#648927L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=265584]
(81) Scan parquet
Output [5]: [orderProposalId#648975L, isFallbackOrderOnly#648992, worklistShardItemId#648998L, shardId#649019, sequenceId#648997]
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/10000002106]
PartitionFilters: [isnotnull(shardId#649019), isnotnull(sequenceId#648997), (shardId#649019 = 0_1_10000002106), (sequenceId#648997 = 2)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(82) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#648975L, isFallbackOrderOnly#648992, worklistShardItemId#648998L, shardId#649019, sequenceId#648997]
(83) Filter [codegen id : 4]
Input [5]: [orderProposalId#648975L, isFallbackOrderOnly#648992, worklistShardItemId#648998L, shardId#649019, sequenceId#648997]
Condition : ((isnotnull(worklistShardItemId#648998L) AND NOT (isFallbackOrderOnly#648992 <=> true)) AND isnotnull(orderProposalId#648975L))
(84) Project [codegen id : 4]
Output [2]: [orderProposalId#648975L, worklistShardItemId#648998L]
Input [5]: [orderProposalId#648975L, isFallbackOrderOnly#648992, worklistShardItemId#648998L, shardId#649019, sequenceId#648997]
(85) Exchange
Input [2]: [orderProposalId#648975L, worklistShardItemId#648998L]
Arguments: hashpartitioning(worklistShardItemId#648998L, 20), REPARTITION_BY_NUM, [plan_id=265591]
(86) Project
Output [2]: [worklistShardItemId#648998L, orderProposalId#648975L]
Input [2]: [orderProposalId#648975L, worklistShardItemId#648998L]
(87) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#648927L]
Right keys [1]: [worklistShardItemId#648998L]
Join type: Inner
Join condition: None
(88) Project [codegen id : 5]
Output [1]: [orderProposalId#648975L]
Input [3]: [worklistShardItemId#648927L, worklistShardItemId#648998L, orderProposalId#648975L]
(89) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#648975L]
Keys [1]: [orderProposalId#648975L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#648975L]
(90) Exchange
Input [1]: [orderProposalId#648975L]
Arguments: hashpartitioning(orderProposalId#648975L, 20), ENSURE_REQUIREMENTS, [plan_id=265598]
(91) HashAggregate
Input [1]: [orderProposalId#648975L]
Keys [1]: [orderProposalId#648975L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#648975L]
(92) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#648920L]
Right keys [1]: [orderProposalId#648975L]
Join type: Inner
Join condition: None
(93) Project
Output [3]: [orderProposalId#648920L, shardId#648919, coalesce(transform(optimizationGroups#648922, lambdafunction(struct(optGroupId, lambda x_1706#648917.optGroupId, minOrderProfile, lambda x_1706#648917.minOrderProfile, assignmentDetails, lambda x_1706#648917.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_1706#648917.minOrderGoal.dimensionType, unit, lambda x_1706#648917.minOrderGoal.unit, unitUuid, lambda x_1706#648917.minOrderGoal.unitUuid, goalValue, lambda x_1706#648917.minOrderGoal.minOrderValue, calcValue, lambda x_1706#648917.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_1706#648917, false)), []) AS optimizationGroups#648916]
Input [4]: [shardId#648919, orderProposalId#648920L, optimizationGroups#648922, orderProposalId#648975L]
(94) Exchange
Input [3]: [orderProposalId#648920L, shardId#648919, optimizationGroups#648916]
Arguments: hashpartitioning(coalesce(shardId#648919, ), isnull(shardId#648919), coalesce(orderProposalId#648920L, 0), isnull(orderProposalId#648920L), 20), ENSURE_REQUIREMENTS, [plan_id=265604]
(95) Sort [codegen id : 7]
Input [3]: [orderProposalId#648920L, shardId#648919, optimizationGroups#648916]
Arguments: [coalesce(shardId#648919, ) ASC NULLS FIRST, isnull(shardId#648919) ASC NULLS FIRST, coalesce(orderProposalId#648920L, 0) ASC NULLS FIRST, isnull(orderProposalId#648920L) ASC NULLS FIRST], false, 0
(96) SortMergeJoin
Left keys [4]: [coalesce(shardId#643168, ), isnull(shardId#643168), coalesce(_extract_orderProposalId#649741L, 0), isnull(_extract_orderProposalId#649741L)]
Right keys [4]: [coalesce(shardId#648919, ), isnull(shardId#648919), coalesce(orderProposalId#648920L, 0), isnull(orderProposalId#648920L)]
Join type: LeftOuter
Join condition: None
(97) Project
Output [2]: [shardId#643168, named_struct(orderProposalId, _extract_orderProposalId#649741L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#649733L, supplierGroup, _extract_supplierGroup#649734, optimizationGroups, coalesce(optimizationGroups#648916, []), supplier, _extract_supplier#649735, supplyingPlant, _extract_supplyingPlant#649736, orderDateTime, _extract_orderDateTime#649737, itemGroups, _extract_itemGroups#649738, previousOrderProposals, _extract_previousOrderProposals#649739, parentItems, _extract_parentItems#649740) AS orderProposal#649023]
Input [14]: [shardId#643168, _extract_orderProposalId#649732L, _extract_originalReplenishmentRunId#649733L, _extract_supplierGroup#649734, _extract_supplier#649735, _extract_supplyingPlant#649736, _extract_orderDateTime#649737, _extract_itemGroups#649738, _extract_previousOrderProposals#649739, _extract_parentItems#649740, _extract_orderProposalId#649741L, orderProposalId#648920L, shardId#648919, optimizationGroups#648916]
(98) Project
Output [3]: [shardId#643168, orderProposal#649023, CASE WHEN (size(orderProposal#649023.parentItems, true) > 2000) THEN xxhash64(orderProposal#649023.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#649023.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#657383L]
Input [2]: [orderProposal#649023, shardId#643168]
(99) ObjectHashAggregate
Input [3]: [shardId#643168, orderProposal#649023, resultSeparationId#657383L]
Keys [2]: [shardId#643168, resultSeparationId#657383L]
Functions [1]: [partial_collect_list(orderProposal#649023, 0, 0)]
Aggregate Attributes [1]: [buf#657422]
Results [3]: [shardId#643168, resultSeparationId#657383L, buf#657423]
(100) Exchange
Input [3]: [shardId#643168, resultSeparationId#657383L, buf#657423]
Arguments: hashpartitioning(shardId#643168, resultSeparationId#657383L, 20), ENSURE_REQUIREMENTS, [plan_id=266382]
(101) ObjectHashAggregate
Input [3]: [shardId#643168, resultSeparationId#657383L, buf#657423]
Keys [2]: [shardId#643168, resultSeparationId#657383L]
Functions [1]: [collect_list(orderProposal#649023, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#649023, 0, 0)#657391]
Results [3]: [shardId#643168, resultSeparationId#657383L, collect_list(orderProposal#649023, 0, 0)#657391 AS orderProposals#657387]
(102) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#657500L]
Results [1]: [count#657501L]
(103) Exchange
Input [1]: [count#657501L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=266406]
(104) HashAggregate [codegen id : 2]
Input [1]: [count#657501L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#657454L]
Results [1]: [count(1)#657454L AS count#657450L]