== 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#893734, resultSeparationId#897631L, orderProposals#897635], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#895895, shardId#893734]
Arguments: [orderProposal#895895, shardId#893734]
(4) InMemoryRelation
Arguments: [shardId#893734, orderProposal#895895], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#894424, channelStreamSpecificKpis#894988, constraintLabels#894436, constraintOperators#894437, constraintValues#894439, deliveryDateTime#894423, isFallbackOrderOnly#894426, logisticUnits#894441, measurements#894434, minimumOrderQuantity#894435, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, nextAvailabilityDateTime#894425, optimizationGroups#894442, orderDateTime#894422, orderProposalId#894404L, orderProposalItemGroupId#894406, orderProposalItemId#894405, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, originalReplenishmentRunId#894407L, plant#894418, previousOrderProposal#894410L, prodLocSpecificKpis#894973, product#894417, productGroup#894446, qty#894248, quantityAfterProdPlantOptimization#894247, quantityKpis#895001, shardId#893734, sourceOfSupplyUuid#894413, splitIndicator#894409L, subrange#894416, supplier#894415, supplierGroup#894414, supplyingPlant#894445]
Arguments: [availabilityDateTime#894424, channelStreamSpecificKpis#894988, constraintLabels#894436, constraintOperators#894437, constraintValues#894439, deliveryDateTime#894423, isFallbackOrderOnly#894426, logisticUnits#894441, measurements#894434, minimumOrderQuantity#894435, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, nextAvailabilityDateTime#894425, optimizationGroups#894442, orderDateTime#894422, orderProposalId#894404L, orderProposalItemGroupId#894406, orderProposalItemId#894405, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, originalReplenishmentRunId#894407L, plant#894418, ... 14 more fields], [NOT (isFallbackOrderOnly#894426 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, availabilityDateTime#894424, nextAvailabilityDateTime#894425, constraintValues#894439, constraintOperators#894437, constraintLabels#894436, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, netPriceAmount#894432, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#893734, items#893736]
Arguments: [shardId#893734, items#893736], [(size(items#893736, true) > 0), isnotnull(items#893736)]
(8) InMemoryRelation
Arguments: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, optimizationInsights#893740], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, optimizationInsights#893740]
Arguments: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, optimizationInsights#893740], [isnotnull(shardId#893734), (shardId#893734 = 0_1_10000002109)]
(10) InMemoryRelation
Arguments: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, lastModified#893739, optimizationInsights#893740], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, lastModified#893739, optimizationInsights#893740]
Arguments: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, lastModified#893739, optimizationInsights#893740], MapPartitionsRDD[41954] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, lastModified#893739, optimizationInsights#893740]
Condition : (isnotnull(shardId#893734) AND (shardId#893734 = 0_1_10000002109))
(13) Filter [codegen id : 1]
Input [6]: [shardId#893734, orderProposalId#893735L, items#893736, optimizationGroups#893737, isOptimal#893738, optimizationInsights#893740]
Condition : (isnotnull(shardId#893734) AND (shardId#893734 = 0_1_10000002109))
(14) Filter [codegen id : 3]
Input [2]: [shardId#893734, items#893736]
Condition : ((size(items#893736, true) > 0) AND isnotnull(items#893736))
(15) Generate [codegen id : 3]
Input [2]: [shardId#893734, items#893736]
Arguments: explode(items#893736), [shardId#893734], false, [item#894245]
(16) Project [codegen id : 3]
Output [4]: [shardId#893734, item#894245.worklistShardItemId AS worklistShardItemId#894246L, item#894245.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#894247, item#894245.qty AS qty#894248]
Input [2]: [shardId#893734, item#894245]
(17) Scan parquet
Output [38]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490, shardId#894491, sequenceId#894469]
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/10000002109]
PartitionFilters: [isnotnull(shardId#894491), isnotnull(sequenceId#894469), (shardId#894491 = 0_1_10000002109), (sequenceId#894469 = 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>>
(18) ColumnarToRow [codegen id : 1]
Input [38]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490, shardId#894491, sequenceId#894469]
(19) Filter [codegen id : 1]
Input [38]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490, shardId#894491, sequenceId#894469]
Condition : isnotnull(worklistShardItemId#894470L)
(20) Project [codegen id : 1]
Output [36]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490]
Input [38]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490, shardId#894491, sequenceId#894469]
(21) Exchange
Input [36]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490]
Arguments: hashpartitioning(worklistShardItemId#894470L, 20), REPARTITION_BY_NUM, [plan_id=349493]
(22) Project [codegen id : 2]
Output [36]: [worklistShardItemId#894470L, orderProposalId#894447L, orderProposalItemId#894448, orderProposalItemGroupId#894471, originalReplenishmentRunId#894489L, splitIndicator#894466L, previousOrderProposal#894467L, sourceOfSupplyUuid#894461, supplierGroup#894449, supplier#894450, subrange#894453, product#894456, plant#894451, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, isFallbackOrderOnly#894464, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, netPriceAmount#894483, netPriceCurrencyCode#894484, measurements#894488, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, logisticUnits#894474, optimizationGroups#894490, externalProductId#894472, externalPlantId#894473, supplyingPlant#894454, productGroup#894455]
Input [36]: [orderProposalId#894447L, orderProposalItemId#894448, supplierGroup#894449, supplier#894450, plant#894451, deliveryDateTime#894452, subrange#894453, supplyingPlant#894454, productGroup#894455, product#894456, orderDateTime#894457, availabilityDateTime#894458, nextAvailabilityDateTime#894459, sourceOfSupplyUuid#894461, isFallbackOrderOnly#894464, splitIndicator#894466L, previousOrderProposal#894467L, worklistShardItemId#894470L, orderProposalItemGroupId#894471, externalProductId#894472, externalPlantId#894473, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, measurements#894488, originalReplenishmentRunId#894489L, optimizationGroups#894490]
(23) BroadcastExchange
Input [36]: [worklistShardItemId#894470L, orderProposalId#894447L, orderProposalItemId#894448, orderProposalItemGroupId#894471, originalReplenishmentRunId#894489L, splitIndicator#894466L, previousOrderProposal#894467L, sourceOfSupplyUuid#894461, supplierGroup#894449, supplier#894450, subrange#894453, product#894456, plant#894451, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, isFallbackOrderOnly#894464, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, netPriceAmount#894483, netPriceCurrencyCode#894484, measurements#894488, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, logisticUnits#894474, optimizationGroups#894490, externalProductId#894472, externalPlantId#894473, supplyingPlant#894454, productGroup#894455]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=349497]
(24) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#894246L]
Right keys [1]: [worklistShardItemId#894470L]
Join type: LeftOuter
Join condition: (shardId#893734 = 0_1_10000002109)
(25) Project [codegen id : 3]
Output [39]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464]
Input [40]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, worklistShardItemId#894470L, orderProposalId#894447L, orderProposalItemId#894448, orderProposalItemGroupId#894471, originalReplenishmentRunId#894489L, splitIndicator#894466L, previousOrderProposal#894467L, sourceOfSupplyUuid#894461, supplierGroup#894449, supplier#894450, subrange#894453, product#894456, plant#894451, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, isFallbackOrderOnly#894464, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, netPriceAmount#894483, netPriceCurrencyCode#894484, measurements#894488, minimumOrderQuantity#894477, constraintLabels#894478, constraintOperators#894479, constraintValues#894480, logisticUnits#894474, optimizationGroups#894490, externalProductId#894472, externalPlantId#894473, supplyingPlant#894454, productGroup#894455]
(26) Exchange
Input [39]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464]
Arguments: hashpartitioning(shardId#893734, worklistShardItemId#894246L, 20), ENSURE_REQUIREMENTS, [plan_id=349502]
(27) Sort [codegen id : 4]
Input [39]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464]
Arguments: [shardId#893734 ASC NULLS FIRST, worklistShardItemId#894246L ASC NULLS FIRST], false, 0
(28) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#894966, worklistShardItemId#894967L, qty#894968, demandChannel#894969, demandStream#894970, kpis#894971]
Arguments: [shardId#894966, worklistShardItemId#894967L, qty#894968, demandChannel#894969, demandStream#894970, kpis#894971], MapPartitionsRDD[42014] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(29) Filter [codegen id : 5]
Input [6]: [shardId#894966, worklistShardItemId#894967L, qty#894968, demandChannel#894969, demandStream#894970, kpis#894971]
Condition : (((isnull(qty#894968) AND isnull(demandChannel#894969)) AND isnull(demandStream#894970)) AND (isnotnull(shardId#894966) AND isnotnull(worklistShardItemId#894967L)))
(30) Project [codegen id : 5]
Output [3]: [shardId#894966, worklistShardItemId#894967L, coalesce(kpis#894971, []) AS prodLocSpecificKpis#894972]
Input [6]: [shardId#894966, worklistShardItemId#894967L, qty#894968, demandChannel#894969, demandStream#894970, kpis#894971]
(31) Exchange
Input [3]: [shardId#894966, worklistShardItemId#894967L, prodLocSpecificKpis#894972]
Arguments: hashpartitioning(shardId#894966, worklistShardItemId#894967L, 20), ENSURE_REQUIREMENTS, [plan_id=349508]
(32) Sort [codegen id : 6]
Input [3]: [shardId#894966, worklistShardItemId#894967L, prodLocSpecificKpis#894972]
Arguments: [shardId#894966 ASC NULLS FIRST, worklistShardItemId#894967L ASC NULLS FIRST], false, 0
(33) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#893734, worklistShardItemId#894246L]
Right keys [2]: [shardId#894966, worklistShardItemId#894967L]
Join type: LeftOuter
Join condition: None
(34) Project [codegen id : 7]
Output [40]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464, coalesce(prodLocSpecificKpis#894972, []) AS prodLocSpecificKpis#894973]
Input [42]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464, shardId#894966, worklistShardItemId#894967L, prodLocSpecificKpis#894972]
(35) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#894982, worklistShardItemId#894983L, qty#894984, demandChannel#894985, demandStream#894986, kpis#894987]
Arguments: [shardId#894982, worklistShardItemId#894983L, qty#894984, demandChannel#894985, demandStream#894986, kpis#894987], MapPartitionsRDD[42014] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(36) Filter [codegen id : 8]
Input [6]: [shardId#894982, worklistShardItemId#894983L, qty#894984, demandChannel#894985, demandStream#894986, kpis#894987]
Condition : ((((isnull(qty#894984) AND isnotnull(demandChannel#894985)) AND isnotnull(demandStream#894986)) AND (size(kpis#894987, true) > 0)) AND (isnotnull(shardId#894982) AND isnotnull(worklistShardItemId#894983L)))
(37) Project [codegen id : 8]
Output [5]: [shardId#894982, worklistShardItemId#894983L, demandChannel#894985, demandStream#894986, kpis#894987]
Input [6]: [shardId#894982, worklistShardItemId#894983L, qty#894984, demandChannel#894985, demandStream#894986, kpis#894987]
(38) ObjectHashAggregate
Input [5]: [shardId#894982, worklistShardItemId#894983L, demandChannel#894985, demandStream#894986, kpis#894987]
Keys [2]: [shardId#894982, worklistShardItemId#894983L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#894985, demandStream, demandStream#894986, kpis, kpis#894987), 0, 0)]
Aggregate Attributes [1]: [buf#895162]
Results [3]: [shardId#894982, worklistShardItemId#894983L, buf#895163]
(39) Exchange
Input [3]: [shardId#894982, worklistShardItemId#894983L, buf#895163]
Arguments: hashpartitioning(shardId#894982, worklistShardItemId#894983L, 20), ENSURE_REQUIREMENTS, [plan_id=349519]
(40) ObjectHashAggregate
Input [3]: [shardId#894982, worklistShardItemId#894983L, buf#895163]
Keys [2]: [shardId#894982, worklistShardItemId#894983L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#894985, demandStream, demandStream#894986, kpis, kpis#894987), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#894985, demandStream, demandStream#894986, kpis, kpis#894987), 0, 0)#894981]
Results [3]: [shardId#894982, worklistShardItemId#894983L, collect_list(struct(demandChannel, demandChannel#894985, demandStream, demandStream#894986, kpis, kpis#894987), 0, 0)#894981 AS channelStreamSpecificKpis#894974]
(41) Sort [codegen id : 9]
Input [3]: [shardId#894982, worklistShardItemId#894983L, channelStreamSpecificKpis#894974]
Arguments: [shardId#894982 ASC NULLS FIRST, worklistShardItemId#894983L ASC NULLS FIRST], false, 0
(42) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#893734, worklistShardItemId#894246L]
Right keys [2]: [shardId#894982, worklistShardItemId#894983L]
Join type: LeftOuter
Join condition: None
(43) Project [codegen id : 10]
Output [41]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464, prodLocSpecificKpis#894973, coalesce(channelStreamSpecificKpis#894974, []) AS channelStreamSpecificKpis#894988]
Input [43]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464, prodLocSpecificKpis#894973, shardId#894982, worklistShardItemId#894983L, channelStreamSpecificKpis#894974]
(44) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#894995, worklistShardItemId#894996L, qty#894997, demandChannel#894998, demandStream#894999, kpis#895000]
Arguments: [shardId#894995, worklistShardItemId#894996L, qty#894997, demandChannel#894998, demandStream#894999, kpis#895000], MapPartitionsRDD[42014] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(45) Filter [codegen id : 11]
Input [6]: [shardId#894995, worklistShardItemId#894996L, qty#894997, demandChannel#894998, demandStream#894999, kpis#895000]
Condition : ((isnotnull(qty#894997) AND isnotnull(kpis#895000)) AND (isnotnull(shardId#894995) AND isnotnull(worklistShardItemId#894996L)))
(46) Project [codegen id : 11]
Output [4]: [shardId#894995, worklistShardItemId#894996L, qty#894997, kpis#895000]
Input [6]: [shardId#894995, worklistShardItemId#894996L, qty#894997, demandChannel#894998, demandStream#894999, kpis#895000]
(47) ObjectHashAggregate
Input [4]: [shardId#894995, worklistShardItemId#894996L, qty#894997, kpis#895000]
Keys [2]: [shardId#894995, worklistShardItemId#894996L]
Functions [1]: [partial_collect_list(struct(qty, qty#894997, kpis, kpis#895000), 0, 0)]
Aggregate Attributes [1]: [buf#895164]
Results [3]: [shardId#894995, worklistShardItemId#894996L, buf#895165]
(48) Exchange
Input [3]: [shardId#894995, worklistShardItemId#894996L, buf#895165]
Arguments: hashpartitioning(shardId#894995, worklistShardItemId#894996L, 20), ENSURE_REQUIREMENTS, [plan_id=349531]
(49) ObjectHashAggregate
Input [3]: [shardId#894995, worklistShardItemId#894996L, buf#895165]
Keys [2]: [shardId#894995, worklistShardItemId#894996L]
Functions [1]: [collect_list(struct(qty, qty#894997, kpis, kpis#895000), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#894997, kpis, kpis#895000), 0, 0)#894994]
Results [3]: [shardId#894995, worklistShardItemId#894996L, map_from_entries(collect_list(struct(qty, qty#894997, kpis, kpis#895000), 0, 0)#894994) AS quantityKpis#894989]
(50) Sort [codegen id : 12]
Input [3]: [shardId#894995, worklistShardItemId#894996L, quantityKpis#894989]
Arguments: [shardId#894995 ASC NULLS FIRST, worklistShardItemId#894996L ASC NULLS FIRST], false, 0
(51) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#893734, worklistShardItemId#894246L]
Right keys [2]: [shardId#894995, worklistShardItemId#894996L]
Join type: LeftOuter
Join condition: None
(52) Project [codegen id : 13]
Output [42]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464, prodLocSpecificKpis#894973, channelStreamSpecificKpis#894988, coalesce(quantityKpis#894989, map(keys: [], values: [])) AS quantityKpis#895001]
Input [44]: [shardId#893734, worklistShardItemId#894246L, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894447L, originalReplenishmentRunId#894489L, supplierGroup#894449, supplier#894450, supplyingPlant#894454, productGroup#894455, product#894456, plant#894451, subrange#894453, orderDateTime#894457, deliveryDateTime#894452, availabilityDateTime#894458, nextAvailabilityDateTime#894459, constraintValues#894480, constraintOperators#894479, constraintLabels#894478, logisticUnits#894474, orderQuantityBaseUom#894475, orderQuantityBaseUomUuid#894476, splitIndicator#894466L, netPriceAmount#894483, netPriceCurrencyCode#894484, netPriceQuantity#894485, netPriceQuantityUom#894486, netPriceQuantityUomUuid#894487, sourceOfSupplyUuid#894461, minimumOrderQuantity#894477, orderProposalItemId#894448, orderProposalItemGroupId#894471, optimizationGroups#894490, measurements#894488, externalProductId#894472, externalPlantId#894473, previousOrderProposal#894467L, isFallbackOrderOnly#894464, prodLocSpecificKpis#894973, channelStreamSpecificKpis#894988, shardId#894995, worklistShardItemId#894996L, quantityKpis#894989]
(53) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#894424, channelStreamSpecificKpis#894988, constraintLabels#894436, constraintOperators#894437, constraintValues#894439, deliveryDateTime#894423, isFallbackOrderOnly#894426, logisticUnits#894441, measurements#894434, minimumOrderQuantity#894435, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, nextAvailabilityDateTime#894425, optimizationGroups#894442, orderDateTime#894422, orderProposalId#894404L, orderProposalItemGroupId#894406, orderProposalItemId#894405, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, originalReplenishmentRunId#894407L, plant#894418, previousOrderProposal#894410L, prodLocSpecificKpis#894973, product#894417, productGroup#894446, qty#894248, quantityAfterProdPlantOptimization#894247, quantityKpis#895001, shardId#893734, sourceOfSupplyUuid#894413, splitIndicator#894409L, subrange#894416, supplier#894415, supplierGroup#894414, supplyingPlant#894445]
Condition : NOT (isFallbackOrderOnly#894426 <=> true)
(54) Project [codegen id : 1]
Output [36]: [shardId#893734, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, availabilityDateTime#894424, nextAvailabilityDateTime#894425, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, sourceOfSupplyUuid#894413, minimumOrderQuantity#894435, orderProposalItemId#894405, orderProposalItemGroupId#894406, optimizationGroups#894442, measurements#894434, previousOrderProposal#894410L, prodLocSpecificKpis#894973, channelStreamSpecificKpis#894988, quantityKpis#895001, arrays_zip(constraintLabels#894436, constraintOperators#894437, constraintValues#894439, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#895415]
Input [39]: [availabilityDateTime#894424, channelStreamSpecificKpis#894988, constraintLabels#894436, constraintOperators#894437, constraintValues#894439, deliveryDateTime#894423, isFallbackOrderOnly#894426, logisticUnits#894441, measurements#894434, minimumOrderQuantity#894435, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, nextAvailabilityDateTime#894425, optimizationGroups#894442, orderDateTime#894422, orderProposalId#894404L, orderProposalItemGroupId#894406, orderProposalItemId#894405, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, originalReplenishmentRunId#894407L, plant#894418, previousOrderProposal#894410L, prodLocSpecificKpis#894973, product#894417, productGroup#894446, qty#894248, quantityAfterProdPlantOptimization#894247, quantityKpis#895001, shardId#893734, sourceOfSupplyUuid#894413, splitIndicator#894409L, subrange#894416, supplier#894415, supplierGroup#894414, supplyingPlant#894445]
(55) Project
Output [37]: [shardId#893734, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, availabilityDateTime#894424, nextAvailabilityDateTime#894425, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, sourceOfSupplyUuid#894413, orderProposalItemId#894405, orderProposalItemGroupId#894406, optimizationGroups#894442, measurements#894434, previousOrderProposal#894410L, prodLocSpecificKpis#894973, channelStreamSpecificKpis#894988, quantityKpis#895001, struct(minServiceLevel, array_min(filter(constraintStructArray#895415, lambdafunction((lambda x_2309#895422.constraintLabels = ServiceLevel), lambda x_2309#895422, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#895415, lambdafunction((lambda x_2310#895423.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_2310#895423, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#895415, lambdafunction((lambda x_2311#895424.constraintLabels = RangeOfCoverage), lambda x_2311#895424, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#894435, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#894973, lambdafunction((lambda x_2312#895425.label = NonListingStartTimestamp), lambda x_2312#895425, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#895421, CASE WHEN (qty#894248 <=> quantityAfterProdPlantOptimization#894247) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#894248 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895493.isOrderUnit, lambda x_2313#895493, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895494.isOrderUnit, lambda x_2313#895494, false)), 1, None, false).numerator as double))), qty#894248), orderQuantityUom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895495.isOrderUnit, lambda x_2313#895495, false)), 1, None, false).uom, orderQuantityBaseUom#894427), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895496.isOrderUnit, lambda x_2313#895496, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428), candidateOrderQuantityInBaseUnit, qty#894248, orderQuantityBaseUom, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#894428, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2315#895497.isPreferred AND (((qty#894248 * cast(lambda x_2315#895497.denominator as double)) % cast(lambda x_2315#895497.numerator as double)) = 0.0)), lambda x_2315#895497, false)), lambdafunction(struct(inPreferredQuantity, ((qty#894248 * cast(lambda x_2316#895535.denominator as double)) / cast(lambda x_2316#895535.numerator as double)), uom, lambda x_2316#895535.uom, uomUuid, lambda x_2316#895535.uomUuid), lambda x_2316#895535, false))).inPreferredQuantity, coalesce((qty#894248 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895498.isOrderUnit, lambda x_2314#895498, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895499.isOrderUnit, lambda x_2314#895499, false)), 1, None, false).numerator as double))), qty#894248)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2315#895500.isPreferred AND (((qty#894248 * cast(lambda x_2315#895500.denominator as double)) % cast(lambda x_2315#895500.numerator as double)) = 0.0)), lambda x_2315#895500, false)), lambdafunction(struct(inPreferredQuantity, ((qty#894248 * cast(lambda x_2316#895536.denominator as double)) / cast(lambda x_2316#895536.numerator as double)), uom, lambda x_2316#895536.uom, uomUuid, lambda x_2316#895536.uomUuid), lambda x_2316#895536, false))).uom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895501.isOrderUnit, lambda x_2314#895501, false)), 1, None, false).uom, orderQuantityBaseUom#894427)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2315#895502.isPreferred AND (((qty#894248 * cast(lambda x_2315#895502.denominator as double)) % cast(lambda x_2315#895502.numerator as double)) = 0.0)), lambda x_2315#895502, false)), lambdafunction(struct(inPreferredQuantity, ((qty#894248 * cast(lambda x_2316#895537.denominator as double)) / cast(lambda x_2316#895537.numerator as double)), uom, lambda x_2316#895537.uom, uomUuid, lambda x_2316#895537.uomUuid), lambda x_2316#895537, false))).uomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895503.isOrderUnit, lambda x_2314#895503, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428)), serviceLevel, coalesce(filter(element_at(quantityKpis#895001, qty#894248, None, false), lambdafunction((lambda x_2321#895504.label = ServiceLevel), lambda x_2321#895504, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#894248 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895507.isOrderUnit, lambda x_2313#895507, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895508.isOrderUnit, lambda x_2313#895508, false)), 1, None, false).numerator as double))), qty#894248), orderQuantityUom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895509.isOrderUnit, lambda x_2313#895509, false)), 1, None, false).uom, orderQuantityBaseUom#894427), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2313#895510.isOrderUnit, lambda x_2313#895510, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428), candidateOrderQuantityInBaseUnit, qty#894248, orderQuantityBaseUom, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#894428, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2315#895511.isPreferred AND (((qty#894248 * cast(lambda x_2315#895511.denominator as double)) % cast(lambda x_2315#895511.numerator as double)) = 0.0)), lambda x_2315#895511, false)), lambdafunction(struct(inPreferredQuantity, ((qty#894248 * cast(lambda x_2316#895538.denominator as double)) / cast(lambda x_2316#895538.numerator as double)), uom, lambda x_2316#895538.uom, uomUuid, lambda x_2316#895538.uomUuid), lambda x_2316#895538, false))).inPreferredQuantity, coalesce((qty#894248 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895512.isOrderUnit, lambda x_2314#895512, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895513.isOrderUnit, lambda x_2314#895513, false)), 1, None, false).numerator as double))), qty#894248)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2315#895514.isPreferred AND (((qty#894248 * cast(lambda x_2315#895514.denominator as double)) % cast(lambda x_2315#895514.numerator as double)) = 0.0)), lambda x_2315#895514, false)), lambdafunction(struct(inPreferredQuantity, ((qty#894248 * cast(lambda x_2316#895539.denominator as double)) / cast(lambda x_2316#895539.numerator as double)), uom, lambda x_2316#895539.uom, uomUuid, lambda x_2316#895539.uomUuid), lambda x_2316#895539, false))).uom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895515.isOrderUnit, lambda x_2314#895515, false)), 1, None, false).uom, orderQuantityBaseUom#894427)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2315#895516.isPreferred AND (((qty#894248 * cast(lambda x_2315#895516.denominator as double)) % cast(lambda x_2315#895516.numerator as double)) = 0.0)), lambda x_2315#895516, false)), lambdafunction(struct(inPreferredQuantity, ((qty#894248 * cast(lambda x_2316#895540.denominator as double)) / cast(lambda x_2316#895540.numerator as double)), uom, lambda x_2316#895540.uom, uomUuid, lambda x_2316#895540.uomUuid), lambda x_2316#895540, false))).uomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2314#895517.isOrderUnit, lambda x_2314#895517, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428)), serviceLevel, coalesce(filter(element_at(quantityKpis#895001, qty#894248, None, false), lambdafunction((lambda x_2324#895518.label = ServiceLevel), lambda x_2324#895518, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#894247 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2317#895521.isOrderUnit, lambda x_2317#895521, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2317#895522.isOrderUnit, lambda x_2317#895522, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#894247), orderQuantityUom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2317#895523.isOrderUnit, lambda x_2317#895523, false)), 1, None, false).uom, orderQuantityBaseUom#894427), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2317#895524.isOrderUnit, lambda x_2317#895524, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#894247, orderQuantityBaseUom, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#894428, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2319#895525.isPreferred AND (((quantityAfterProdPlantOptimization#894247 * cast(lambda x_2319#895525.denominator as double)) % cast(lambda x_2319#895525.numerator as double)) = 0.0)), lambda x_2319#895525, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#894247 * cast(lambda x_2320#895541.denominator as double)) / cast(lambda x_2320#895541.numerator as double)), uom, lambda x_2320#895541.uom, uomUuid, lambda x_2320#895541.uomUuid), lambda x_2320#895541, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#894247 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2318#895526.isOrderUnit, lambda x_2318#895526, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2318#895527.isOrderUnit, lambda x_2318#895527, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#894247)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2319#895528.isPreferred AND (((quantityAfterProdPlantOptimization#894247 * cast(lambda x_2319#895528.denominator as double)) % cast(lambda x_2319#895528.numerator as double)) = 0.0)), lambda x_2319#895528, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#894247 * cast(lambda x_2320#895542.denominator as double)) / cast(lambda x_2320#895542.numerator as double)), uom, lambda x_2320#895542.uom, uomUuid, lambda x_2320#895542.uomUuid), lambda x_2320#895542, false))).uom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2318#895529.isOrderUnit, lambda x_2318#895529, false)), 1, None, false).uom, orderQuantityBaseUom#894427)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#894441, lambdafunction((lambda x_2319#895530.isPreferred AND (((quantityAfterProdPlantOptimization#894247 * cast(lambda x_2319#895530.denominator as double)) % cast(lambda x_2319#895530.numerator as double)) = 0.0)), lambda x_2319#895530, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#894247 * cast(lambda x_2320#895543.denominator as double)) / cast(lambda x_2320#895543.numerator as double)), uom, lambda x_2320#895543.uom, uomUuid, lambda x_2320#895543.uomUuid), lambda x_2320#895543, false))).uomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2318#895531.isOrderUnit, lambda x_2318#895531, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428)), serviceLevel, coalesce(filter(element_at(quantityKpis#895001, quantityAfterProdPlantOptimization#894247, None, false), lambdafunction((lambda x_2327#895532.label = ServiceLevel), lambda x_2327#895532, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#895492, coalesce(filter(prodLocSpecificKpis#894973, lambdafunction((lambda x_2330#895545.label = InitialStockQty), lambda x_2330#895545, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#895544, coalesce(filter(prodLocSpecificKpis#894973, lambdafunction((lambda x_2331#895547.label = DemandPeriodEndTimestamp), lambda x_2331#895547, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#895546]
Input [36]: [shardId#893734, quantityAfterProdPlantOptimization#894247, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, availabilityDateTime#894424, nextAvailabilityDateTime#894425, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, sourceOfSupplyUuid#894413, minimumOrderQuantity#894435, orderProposalItemId#894405, orderProposalItemGroupId#894406, optimizationGroups#894442, measurements#894434, previousOrderProposal#894410L, prodLocSpecificKpis#894973, channelStreamSpecificKpis#894988, quantityKpis#895001, constraintStructArray#895415]
(56) Project
Output [21]: [shardId#893734, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, orderProposalItemId#894405, orderProposalItemGroupId#894406, previousOrderProposal#894410L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#894415, supplyingPlant, supplyingPlant#894445, productGroup, productGroup#894446, product, product#894417, plant, plant#894418, supplierSubRange, subrange#894416, sourceOfSupplyUuid, sourceOfSupplyUuid#894413, deliveryDateTime, deliveryDateTime#894423, unitPrice, netPriceAmount#894432, unitPriceCurrency, netPriceCurrencyCode#894433, unitPriceQuantity, ... 37 more fields) AS parentItem#895626]
Input [37]: [shardId#893734, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, availabilityDateTime#894424, nextAvailabilityDateTime#894425, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, netPriceAmount#894432, netPriceCurrencyCode#894433, netPriceQuantity#894429, netPriceQuantityUom#894430, netPriceQuantityUomUuid#894431, sourceOfSupplyUuid#894413, orderProposalItemId#894405, orderProposalItemGroupId#894406, optimizationGroups#894442, measurements#894434, previousOrderProposal#894410L, prodLocSpecificKpis#894973, channelStreamSpecificKpis#894988, quantityKpis#895001, constraintBenchmark#895421, calculationAnalysis#895492, inventoryDateTime#895544, demandPeriodEndDateTime#895546]
(57) Project
Output [12]: [shardId#893734, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, orderDateTime#894422, splitIndicator#894409L, orderProposalItemGroupId#894406, previousOrderProposal#894410L, parentItem#895626, struct(itemId, orderProposalItemId#894405, supplier, supplier#894415, supplyingPlant, supplyingPlant#894445, productGroup, productGroup#894446, product, product#894417, plant, plant#894418, supplierSubRange, subrange#894416, deliveryDateTime, deliveryDateTime#894423, orderQuantity, coalesce((qty#894248 * (cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2355#895660.isOrderUnit, lambda x_2355#895660, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2355#895661.isOrderUnit, lambda x_2355#895661, false)), 1, None, false).numerator as double))), qty#894248), orderQuantityUom, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2355#895662.isOrderUnit, lambda x_2355#895662, false)), 1, None, false).uom, orderQuantityBaseUom#894427), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#894441, lambdafunction(lambda x_2355#895663.isOrderUnit, lambda x_2355#895663, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#894428), orderQuantityInBaseUnit, qty#894248, orderQuantityBaseUom, ... 13 more fields) AS item#895657]
Input [21]: [shardId#893734, qty#894248, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, productGroup#894446, product#894417, plant#894418, subrange#894416, orderDateTime#894422, deliveryDateTime#894423, logisticUnits#894441, orderQuantityBaseUom#894427, orderQuantityBaseUomUuid#894428, splitIndicator#894409L, orderProposalItemId#894405, orderProposalItemGroupId#894406, previousOrderProposal#894410L, parentItem#895626]
(58) ObjectHashAggregate
Input [12]: [shardId#893734, orderProposalId#894404L, originalReplenishmentRunId#894407L, supplierGroup#894414, supplier#894415, supplyingPlant#894445, orderDateTime#894422, splitIndicator#894409L, orderProposalItemGroupId#894406, previousOrderProposal#894410L, parentItem#895626, item#895657]
Keys [4]: [shardId#893734, orderProposalId#894404L, splitIndicator#894409L, orderProposalItemGroupId#894406]
Functions [8]: [partial_max(originalReplenishmentRunId#894407L), partial_max(supplierGroup#894414), partial_max(supplier#894415), partial_max(supplyingPlant#894445), partial_max(orderDateTime#894422), partial_collect_list(parentItem#895626, 0, 0), partial_collect_set(previousOrderProposal#894410L, 0, 0), partial_collect_list(item#895657, 0, 0)]
Aggregate Attributes [8]: [max#896918L, max#896919, max#896920, max#896921, max#896922, buf#896923, buf#896924, buf#896925]
Results [12]: [shardId#893734, orderProposalId#894404L, splitIndicator#894409L, orderProposalItemGroupId#894406, max#896926L, max#896927, max#896928, max#896929, max#896930, buf#896931, buf#896932, buf#896933]
(59) Exchange
Input [12]: [shardId#893734, orderProposalId#894404L, splitIndicator#894409L, orderProposalItemGroupId#894406, max#896926L, max#896927, max#896928, max#896929, max#896930, buf#896931, buf#896932, buf#896933]
Arguments: hashpartitioning(shardId#893734, orderProposalId#894404L, splitIndicator#894409L, orderProposalItemGroupId#894406, 20), ENSURE_REQUIREMENTS, [plan_id=349769]
(60) ObjectHashAggregate
Input [12]: [shardId#893734, orderProposalId#894404L, splitIndicator#894409L, orderProposalItemGroupId#894406, max#896926L, max#896927, max#896928, max#896929, max#896930, buf#896931, buf#896932, buf#896933]
Keys [4]: [shardId#893734, orderProposalId#894404L, splitIndicator#894409L, orderProposalItemGroupId#894406]
Functions [8]: [max(originalReplenishmentRunId#894407L), max(supplierGroup#894414), max(supplier#894415), max(supplyingPlant#894445), max(orderDateTime#894422), collect_list(parentItem#895626, 0, 0), collect_set(previousOrderProposal#894410L, 0, 0), collect_list(item#895657, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#894407L)#895726L, max(supplierGroup#894414)#895727, max(supplier#894415)#895728, max(supplyingPlant#894445)#895729, max(orderDateTime#894422)#895730, collect_list(parentItem#895626, 0, 0)#895731, collect_set(previousOrderProposal#894410L, 0, 0)#895733, collect_list(item#895657, 0, 0)#895732]
Results [10]: [shardId#893734, orderProposalId#894404L, max(originalReplenishmentRunId#894407L)#895726L AS originalReplenishmentRunId#895674L, max(supplierGroup#894414)#895727 AS supplierGroup#895675, max(supplier#894415)#895728 AS supplier#895676, max(supplyingPlant#894445)#895729 AS supplyingPlant#895677, max(orderDateTime#894422)#895730 AS orderDateTime#895678, collect_list(parentItem#895626, 0, 0)#895731 AS parentItems#895679, collect_set(previousOrderProposal#894410L, 0, 0)#895733 AS previousOrderProposals#895681, struct(itemGroupId, coalesce(orderProposalItemGroupId#894406, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#895657, 0, 0)#895732) AS itemGroup#895735]
(61) ObjectHashAggregate
Input [10]: [shardId#893734, orderProposalId#894404L, originalReplenishmentRunId#895674L, supplierGroup#895675, supplier#895676, supplyingPlant#895677, orderDateTime#895678, parentItems#895679, previousOrderProposals#895681, itemGroup#895735]
Keys [2]: [shardId#893734, orderProposalId#894404L]
Functions [8]: [partial_max(originalReplenishmentRunId#895674L), partial_max(supplierGroup#895675), partial_max(supplier#895676), partial_max(supplyingPlant#895677), partial_max(orderDateTime#895678), partial_collect_list(itemGroup#895735, 0, 0), partial_collect_list(parentItems#895679, 0, 0), partial_collect_set(previousOrderProposals#895681, 0, 0)]
Aggregate Attributes [8]: [max#896902L, max#896903, max#896904, max#896905, max#896906, buf#896907, buf#896908, buf#896909]
Results [10]: [shardId#893734, orderProposalId#894404L, max#896910L, max#896911, max#896912, max#896913, max#896914, buf#896915, buf#896916, buf#896917]
(62) Exchange
Input [10]: [shardId#893734, orderProposalId#894404L, max#896910L, max#896911, max#896912, max#896913, max#896914, buf#896915, buf#896916, buf#896917]
Arguments: hashpartitioning(shardId#893734, orderProposalId#894404L, 20), ENSURE_REQUIREMENTS, [plan_id=349772]
(63) ObjectHashAggregate
Input [10]: [shardId#893734, orderProposalId#894404L, max#896910L, max#896911, max#896912, max#896913, max#896914, buf#896915, buf#896916, buf#896917]
Keys [2]: [shardId#893734, orderProposalId#894404L]
Functions [8]: [max(originalReplenishmentRunId#895674L), max(supplierGroup#895675), max(supplier#895676), max(supplyingPlant#895677), max(orderDateTime#895678), collect_list(itemGroup#895735, 0, 0), collect_list(parentItems#895679, 0, 0), collect_set(previousOrderProposals#895681, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#895674L)#895757L, max(supplierGroup#895675)#895758, max(supplier#895676)#895759, max(supplyingPlant#895677)#895760, max(orderDateTime#895678)#895761, collect_list(itemGroup#895735, 0, 0)#895762, collect_list(parentItems#895679, 0, 0)#895763, collect_set(previousOrderProposals#895681, 0, 0)#895764]
Results [10]: [shardId#893734, orderProposalId#894404L, max(originalReplenishmentRunId#895674L)#895757L AS originalReplenishmentRunId#895736L, max(supplierGroup#895675)#895758 AS supplierGroup#895737, max(supplier#895676)#895759 AS supplier#895738, max(supplyingPlant#895677)#895760 AS supplyingPlant#895739, max(orderDateTime#895678)#895761 AS orderDateTime#895740, collect_list(itemGroup#895735, 0, 0)#895762 AS itemGroups#895741, flatten(collect_list(parentItems#895679, 0, 0)#895763) AS parentItems#895742, flatten(collect_set(previousOrderProposals#895681, 0, 0)#895764) AS previousOrderProposals#895743]
(64) Project
Output [2]: [shardId#893734, struct(orderProposalId, orderProposalId#894404L, originalReplenishmentRunId, originalReplenishmentRunId#895736L, supplierGroup, supplierGroup#895737, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#895737) THEN supplier#895738 END, supplyingPlant, supplyingPlant#895739, orderDateTime, orderDateTime#895740, itemGroups, itemGroups#895741, previousOrderProposals, array_distinct(previousOrderProposals#895743), parentItems, parentItems#895742) AS orderProposal#895768]
Input [10]: [shardId#893734, orderProposalId#894404L, originalReplenishmentRunId#895736L, supplierGroup#895737, supplier#895738, supplyingPlant#895739, orderDateTime#895740, itemGroups#895741, parentItems#895742, previousOrderProposals#895743]
(65) Project
Output [11]: [shardId#893734, orderProposal#895768.orderProposalId AS _extract_orderProposalId#896534L, orderProposal#895768.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#896535L, orderProposal#895768.supplierGroup AS _extract_supplierGroup#896536, orderProposal#895768.supplier AS _extract_supplier#896537, orderProposal#895768.supplyingPlant AS _extract_supplyingPlant#896538, orderProposal#895768.orderDateTime AS _extract_orderDateTime#896539, orderProposal#895768.itemGroups AS _extract_itemGroups#896540, orderProposal#895768.previousOrderProposals AS _extract_previousOrderProposals#896541, orderProposal#895768.parentItems AS _extract_parentItems#896542, orderProposal#895768.orderProposalId AS _extract_orderProposalId#896543L]
Input [2]: [shardId#893734, orderProposal#895768]
(66) InMemoryTableScan
Output [3]: [shardId#895791, orderProposalId#895792L, optimizationGroups#895794]
Arguments: [shardId#895791, orderProposalId#895792L, optimizationGroups#895794], [isnotnull(orderProposalId#895792L)]
(67) InMemoryRelation
Arguments: [shardId#895791, orderProposalId#895792L, items#895793, optimizationGroups#895794, isOptimal#895795, optimizationInsights#895797], StorageLevel(disk, memory, 2 replicas)
(68) Filter [codegen id : 2]
Input [3]: [shardId#895791, orderProposalId#895792L, optimizationGroups#895794]
Condition : isnotnull(orderProposalId#895792L)
(69) BroadcastExchange
Input [3]: [shardId#895791, orderProposalId#895792L, optimizationGroups#895794]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=349779]
(70) InMemoryTableScan
Output [2]: [items#895410, shardId#895408]
Arguments: [items#895410, shardId#895408], [(size(items#895410.worklistShardItemId, true) > 0), isnotnull(items#895410.worklistShardItemId), (shardId#895408 = 0_1_10000002109)]
(71) InMemoryRelation
Arguments: [shardId#895408, orderProposalId#895409L, items#895410, optimizationGroups#895411, isOptimal#895412, optimizationInsights#895414], StorageLevel(disk, memory, 2 replicas)
(72) Filter [codegen id : 3]
Input [2]: [items#895410, shardId#895408]
Condition : (((size(items#895410.worklistShardItemId, true) > 0) AND isnotnull(items#895410.worklistShardItemId)) AND (shardId#895408 = 0_1_10000002109))
(73) Project [codegen id : 3]
Output [1]: [items#895410.worklistShardItemId AS _extract_worklistShardItemId#896439]
Input [2]: [items#895410, shardId#895408]
(74) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#896439]
Arguments: explode(_extract_worklistShardItemId#896439), false, [item#895798L]
(75) Project [codegen id : 3]
Output [1]: [item#895798L AS worklistShardItemId#895799L]
Input [1]: [item#895798L]
(76) BroadcastExchange
Input [1]: [worklistShardItemId#895799L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=349787]
(77) Scan parquet
Output [5]: [orderProposalId#895847L, isFallbackOrderOnly#895864, worklistShardItemId#895870L, shardId#895891, sequenceId#895869]
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/10000002109]
PartitionFilters: [isnotnull(shardId#895891), isnotnull(sequenceId#895869), (shardId#895891 = 0_1_10000002109), (sequenceId#895869 = 2)]
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#895847L, isFallbackOrderOnly#895864, worklistShardItemId#895870L, shardId#895891, sequenceId#895869]
(79) Filter [codegen id : 4]
Input [5]: [orderProposalId#895847L, isFallbackOrderOnly#895864, worklistShardItemId#895870L, shardId#895891, sequenceId#895869]
Condition : ((isnotnull(worklistShardItemId#895870L) AND NOT (isFallbackOrderOnly#895864 <=> true)) AND isnotnull(orderProposalId#895847L))
(80) Project [codegen id : 4]
Output [2]: [orderProposalId#895847L, worklistShardItemId#895870L]
Input [5]: [orderProposalId#895847L, isFallbackOrderOnly#895864, worklistShardItemId#895870L, shardId#895891, sequenceId#895869]
(81) Exchange
Input [2]: [orderProposalId#895847L, worklistShardItemId#895870L]
Arguments: hashpartitioning(worklistShardItemId#895870L, 20), REPARTITION_BY_NUM, [plan_id=349794]
(82) Project
Output [2]: [worklistShardItemId#895870L, orderProposalId#895847L]
Input [2]: [orderProposalId#895847L, worklistShardItemId#895870L]
(83) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#895799L]
Right keys [1]: [worklistShardItemId#895870L]
Join type: Inner
Join condition: None
(84) Project [codegen id : 5]
Output [1]: [orderProposalId#895847L]
Input [3]: [worklistShardItemId#895799L, worklistShardItemId#895870L, orderProposalId#895847L]
(85) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#895847L]
Keys [1]: [orderProposalId#895847L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#895847L]
(86) Exchange
Input [1]: [orderProposalId#895847L]
Arguments: hashpartitioning(orderProposalId#895847L, 20), ENSURE_REQUIREMENTS, [plan_id=349801]
(87) HashAggregate
Input [1]: [orderProposalId#895847L]
Keys [1]: [orderProposalId#895847L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#895847L]
(88) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#895792L]
Right keys [1]: [orderProposalId#895847L]
Join type: Inner
Join condition: None
(89) Project
Output [3]: [orderProposalId#895792L, shardId#895791, coalesce(transform(optimizationGroups#895794, lambdafunction(struct(optGroupId, lambda x_2359#895789.optGroupId, minOrderProfile, lambda x_2359#895789.minOrderProfile, assignmentDetails, lambda x_2359#895789.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_2359#895789.minOrderGoal.dimensionType, unit, lambda x_2359#895789.minOrderGoal.unit, unitUuid, lambda x_2359#895789.minOrderGoal.unitUuid, goalValue, lambda x_2359#895789.minOrderGoal.minOrderValue, calcValue, lambda x_2359#895789.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_2359#895789, false)), []) AS optimizationGroups#895788]
Input [4]: [shardId#895791, orderProposalId#895792L, optimizationGroups#895794, orderProposalId#895847L]
(90) BroadcastExchange
Input [3]: [orderProposalId#895792L, shardId#895791, optimizationGroups#895788]
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=349807]
(91) BroadcastHashJoin
Left keys [4]: [coalesce(shardId#893734, ), isnull(shardId#893734), coalesce(_extract_orderProposalId#896543L, 0), isnull(_extract_orderProposalId#896543L)]
Right keys [4]: [coalesce(shardId#895791, ), isnull(shardId#895791), coalesce(orderProposalId#895792L, 0), isnull(orderProposalId#895792L)]
Join type: LeftOuter
Join condition: None
(92) Project
Output [2]: [shardId#893734, named_struct(orderProposalId, _extract_orderProposalId#896543L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#896535L, supplierGroup, _extract_supplierGroup#896536, optimizationGroups, coalesce(optimizationGroups#895788, []), supplier, _extract_supplier#896537, supplyingPlant, _extract_supplyingPlant#896538, orderDateTime, _extract_orderDateTime#896539, itemGroups, _extract_itemGroups#896540, previousOrderProposals, _extract_previousOrderProposals#896541, parentItems, _extract_parentItems#896542) AS orderProposal#895895]
Input [14]: [shardId#893734, _extract_orderProposalId#896534L, _extract_originalReplenishmentRunId#896535L, _extract_supplierGroup#896536, _extract_supplier#896537, _extract_supplyingPlant#896538, _extract_orderDateTime#896539, _extract_itemGroups#896540, _extract_previousOrderProposals#896541, _extract_parentItems#896542, _extract_orderProposalId#896543L, orderProposalId#895792L, shardId#895791, optimizationGroups#895788]
(93) Project
Output [3]: [shardId#893734, orderProposal#895895, CASE WHEN (size(orderProposal#895895.parentItems, true) > 2000) THEN xxhash64(orderProposal#895895.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#895895.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#897631L]
Input [2]: [orderProposal#895895, shardId#893734]
(94) ObjectHashAggregate
Input [3]: [shardId#893734, orderProposal#895895, resultSeparationId#897631L]
Keys [2]: [shardId#893734, resultSeparationId#897631L]
Functions [1]: [partial_collect_list(orderProposal#895895, 0, 0)]
Aggregate Attributes [1]: [buf#897670]
Results [3]: [shardId#893734, resultSeparationId#897631L, buf#897671]
(95) Exchange
Input [3]: [shardId#893734, resultSeparationId#897631L, buf#897671]
Arguments: hashpartitioning(shardId#893734, resultSeparationId#897631L, 20), ENSURE_REQUIREMENTS, [plan_id=349942]
(96) ObjectHashAggregate
Input [3]: [shardId#893734, resultSeparationId#897631L, buf#897671]
Keys [2]: [shardId#893734, resultSeparationId#897631L]
Functions [1]: [collect_list(orderProposal#895895, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#895895, 0, 0)#897639]
Results [3]: [shardId#893734, resultSeparationId#897631L, collect_list(orderProposal#895895, 0, 0)#897639 AS orderProposals#897635]
(97) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#897748L]
Results [1]: [count#897749L]
(98) Exchange
Input [1]: [count#897749L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=349966]
(99) HashAggregate [codegen id : 2]
Input [1]: [count#897749L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#897702L]
Results [1]: [count(1)#897702L AS count#897698L]