== Physical Plan ==
* HashAggregate (102)
+- Exchange (101)
+- * HashAggregate (100)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- ObjectHashAggregate (99)
+- Exchange (98)
+- ObjectHashAggregate (97)
+- Project (96)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- Project (95)
+- SortMergeJoin LeftOuter (94)
:- Sort (67)
: +- Exchange (66)
: +- 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)
+- * Sort (93)
+- Exchange (92)
+- Project (91)
+- * BroadcastHashJoin Inner BuildLeft (90)
:- BroadcastExchange (71)
: +- * Filter (70)
: +- InMemoryTableScan (68)
: +- InMemoryRelation (69)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * HashAggregate (89)
+- Exchange (88)
+- * HashAggregate (87)
+- * Project (86)
+- * BroadcastHashJoin Inner BuildLeft (85)
:- BroadcastExchange (78)
: +- * Project (77)
: +- * Generate (76)
: +- * Project (75)
: +- * Filter (74)
: +- InMemoryTableScan (72)
: +- InMemoryRelation (73)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * Project (84)
+- Exchange (83)
+- * Project (82)
+- * Filter (81)
+- * ColumnarToRow (80)
+- Scan parquet (79)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#589610, resultSeparationId#597718L, orderProposals#597722], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#594659, shardId#589610]
Arguments: [orderProposal#594659, shardId#589610]
(4) InMemoryRelation
Arguments: [shardId#589610, orderProposal#594659], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#590300, channelStreamSpecificKpis#593752, constraintLabels#590312, constraintOperators#590313, constraintValues#590315, deliveryDateTime#590299, isFallbackOrderOnly#590302, logisticUnits#590317, measurements#590310, minimumOrderQuantity#590311, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, nextAvailabilityDateTime#590301, optimizationGroups#590318, orderDateTime#590298, orderProposalId#590280L, orderProposalItemGroupId#590282, orderProposalItemId#590281, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, originalReplenishmentRunId#590283L, plant#590294, previousOrderProposal#590286L, prodLocSpecificKpis#593737, product#590293, productGroup#590322, qty#590124, quantityAfterProdPlantOptimization#590123, quantityKpis#593765, shardId#589610, sourceOfSupplyUuid#590289, splitIndicator#590285L, subrange#590292, supplier#590291, supplierGroup#590290, supplyingPlant#590321]
Arguments: [availabilityDateTime#590300, channelStreamSpecificKpis#593752, constraintLabels#590312, constraintOperators#590313, constraintValues#590315, deliveryDateTime#590299, isFallbackOrderOnly#590302, logisticUnits#590317, measurements#590310, minimumOrderQuantity#590311, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, nextAvailabilityDateTime#590301, optimizationGroups#590318, orderDateTime#590298, orderProposalId#590280L, orderProposalItemGroupId#590282, orderProposalItemId#590281, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, originalReplenishmentRunId#590283L, plant#590294, ... 14 more fields], [NOT (isFallbackOrderOnly#590302 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, availabilityDateTime#590300, nextAvailabilityDateTime#590301, constraintValues#590315, constraintOperators#590313, constraintLabels#590312, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, netPriceAmount#590308, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#589610, items#589612]
Arguments: [shardId#589610, items#589612], [(size(items#589612, true) > 0), isnotnull(items#589612)]
(8) InMemoryRelation
Arguments: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, optimizationInsights#589616], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, optimizationInsights#589616]
Arguments: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, optimizationInsights#589616], [isnotnull(shardId#589610), (shardId#589610 = 0_1_10000002107)]
(10) InMemoryRelation
Arguments: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, lastModified#589615, optimizationInsights#589616], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, lastModified#589615, optimizationInsights#589616]
Arguments: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, lastModified#589615, optimizationInsights#589616], MapPartitionsRDD[28419] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, lastModified#589615, optimizationInsights#589616]
Condition : (isnotnull(shardId#589610) AND (shardId#589610 = 0_1_10000002107))
(13) Filter [codegen id : 1]
Input [6]: [shardId#589610, orderProposalId#589611L, items#589612, optimizationGroups#589613, isOptimal#589614, optimizationInsights#589616]
Condition : (isnotnull(shardId#589610) AND (shardId#589610 = 0_1_10000002107))
(14) Filter [codegen id : 3]
Input [2]: [shardId#589610, items#589612]
Condition : ((size(items#589612, true) > 0) AND isnotnull(items#589612))
(15) Generate [codegen id : 3]
Input [2]: [shardId#589610, items#589612]
Arguments: explode(items#589612), [shardId#589610], false, [item#590121]
(16) Project [codegen id : 3]
Output [4]: [shardId#589610, item#590121.worklistShardItemId AS worklistShardItemId#590122L, item#590121.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#590123, item#590121.qty AS qty#590124]
Input [2]: [shardId#589610, item#590121]
(17) Scan parquet
Output [38]: [orderProposalId#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366, shardId#590367, sequenceId#590345]
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/10000002107]
PartitionFilters: [isnotnull(shardId#590367), isnotnull(sequenceId#590345), (shardId#590367 = 0_1_10000002107), (sequenceId#590345 = 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#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366, shardId#590367, sequenceId#590345]
(19) Filter [codegen id : 1]
Input [38]: [orderProposalId#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366, shardId#590367, sequenceId#590345]
Condition : isnotnull(worklistShardItemId#590346L)
(20) Project [codegen id : 1]
Output [36]: [orderProposalId#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366]
Input [38]: [orderProposalId#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366, shardId#590367, sequenceId#590345]
(21) Exchange
Input [36]: [orderProposalId#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366]
Arguments: hashpartitioning(worklistShardItemId#590346L, 20), REPARTITION_BY_NUM, [plan_id=250607]
(22) Project [codegen id : 2]
Output [36]: [worklistShardItemId#590346L, orderProposalId#590323L, orderProposalItemId#590324, orderProposalItemGroupId#590347, originalReplenishmentRunId#590365L, splitIndicator#590342L, previousOrderProposal#590343L, sourceOfSupplyUuid#590337, supplierGroup#590325, supplier#590326, subrange#590329, product#590332, plant#590327, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, isFallbackOrderOnly#590340, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, netPriceAmount#590359, netPriceCurrencyCode#590360, measurements#590364, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, logisticUnits#590350, optimizationGroups#590366, externalProductId#590348, externalPlantId#590349, supplyingPlant#590330, productGroup#590331]
Input [36]: [orderProposalId#590323L, orderProposalItemId#590324, supplierGroup#590325, supplier#590326, plant#590327, deliveryDateTime#590328, subrange#590329, supplyingPlant#590330, productGroup#590331, product#590332, orderDateTime#590333, availabilityDateTime#590334, nextAvailabilityDateTime#590335, sourceOfSupplyUuid#590337, isFallbackOrderOnly#590340, splitIndicator#590342L, previousOrderProposal#590343L, worklistShardItemId#590346L, orderProposalItemGroupId#590347, externalProductId#590348, externalPlantId#590349, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, measurements#590364, originalReplenishmentRunId#590365L, optimizationGroups#590366]
(23) BroadcastExchange
Input [36]: [worklistShardItemId#590346L, orderProposalId#590323L, orderProposalItemId#590324, orderProposalItemGroupId#590347, originalReplenishmentRunId#590365L, splitIndicator#590342L, previousOrderProposal#590343L, sourceOfSupplyUuid#590337, supplierGroup#590325, supplier#590326, subrange#590329, product#590332, plant#590327, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, isFallbackOrderOnly#590340, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, netPriceAmount#590359, netPriceCurrencyCode#590360, measurements#590364, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, logisticUnits#590350, optimizationGroups#590366, externalProductId#590348, externalPlantId#590349, supplyingPlant#590330, productGroup#590331]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=250611]
(24) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#590122L]
Right keys [1]: [worklistShardItemId#590346L]
Join type: LeftOuter
Join condition: (shardId#589610 = 0_1_10000002107)
(25) Project [codegen id : 3]
Output [39]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340]
Input [40]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, worklistShardItemId#590346L, orderProposalId#590323L, orderProposalItemId#590324, orderProposalItemGroupId#590347, originalReplenishmentRunId#590365L, splitIndicator#590342L, previousOrderProposal#590343L, sourceOfSupplyUuid#590337, supplierGroup#590325, supplier#590326, subrange#590329, product#590332, plant#590327, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, isFallbackOrderOnly#590340, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, netPriceAmount#590359, netPriceCurrencyCode#590360, measurements#590364, minimumOrderQuantity#590353, constraintLabels#590354, constraintOperators#590355, constraintValues#590356, logisticUnits#590350, optimizationGroups#590366, externalProductId#590348, externalPlantId#590349, supplyingPlant#590330, productGroup#590331]
(26) Exchange
Input [39]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340]
Arguments: hashpartitioning(shardId#589610, worklistShardItemId#590122L, 20), ENSURE_REQUIREMENTS, [plan_id=250616]
(27) Sort [codegen id : 4]
Input [39]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340]
Arguments: [shardId#589610 ASC NULLS FIRST, worklistShardItemId#590122L ASC NULLS FIRST], false, 0
(28) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#593730, worklistShardItemId#593731L, qty#593732, demandChannel#593733, demandStream#593734, kpis#593735]
Arguments: [shardId#593730, worklistShardItemId#593731L, qty#593732, demandChannel#593733, demandStream#593734, kpis#593735], MapPartitionsRDD[28553] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(29) Filter [codegen id : 5]
Input [6]: [shardId#593730, worklistShardItemId#593731L, qty#593732, demandChannel#593733, demandStream#593734, kpis#593735]
Condition : (((isnull(qty#593732) AND isnull(demandChannel#593733)) AND isnull(demandStream#593734)) AND (isnotnull(shardId#593730) AND isnotnull(worklistShardItemId#593731L)))
(30) Project [codegen id : 5]
Output [3]: [shardId#593730, worklistShardItemId#593731L, coalesce(kpis#593735, []) AS prodLocSpecificKpis#593736]
Input [6]: [shardId#593730, worklistShardItemId#593731L, qty#593732, demandChannel#593733, demandStream#593734, kpis#593735]
(31) Exchange
Input [3]: [shardId#593730, worklistShardItemId#593731L, prodLocSpecificKpis#593736]
Arguments: hashpartitioning(shardId#593730, worklistShardItemId#593731L, 20), ENSURE_REQUIREMENTS, [plan_id=250622]
(32) Sort [codegen id : 6]
Input [3]: [shardId#593730, worklistShardItemId#593731L, prodLocSpecificKpis#593736]
Arguments: [shardId#593730 ASC NULLS FIRST, worklistShardItemId#593731L ASC NULLS FIRST], false, 0
(33) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#589610, worklistShardItemId#590122L]
Right keys [2]: [shardId#593730, worklistShardItemId#593731L]
Join type: LeftOuter
Join condition: None
(34) Project [codegen id : 7]
Output [40]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340, coalesce(prodLocSpecificKpis#593736, []) AS prodLocSpecificKpis#593737]
Input [42]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340, shardId#593730, worklistShardItemId#593731L, prodLocSpecificKpis#593736]
(35) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#593746, worklistShardItemId#593747L, qty#593748, demandChannel#593749, demandStream#593750, kpis#593751]
Arguments: [shardId#593746, worklistShardItemId#593747L, qty#593748, demandChannel#593749, demandStream#593750, kpis#593751], MapPartitionsRDD[28553] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(36) Filter [codegen id : 8]
Input [6]: [shardId#593746, worklistShardItemId#593747L, qty#593748, demandChannel#593749, demandStream#593750, kpis#593751]
Condition : ((((isnull(qty#593748) AND isnotnull(demandChannel#593749)) AND isnotnull(demandStream#593750)) AND (size(kpis#593751, true) > 0)) AND (isnotnull(shardId#593746) AND isnotnull(worklistShardItemId#593747L)))
(37) Project [codegen id : 8]
Output [5]: [shardId#593746, worklistShardItemId#593747L, demandChannel#593749, demandStream#593750, kpis#593751]
Input [6]: [shardId#593746, worklistShardItemId#593747L, qty#593748, demandChannel#593749, demandStream#593750, kpis#593751]
(38) ObjectHashAggregate
Input [5]: [shardId#593746, worklistShardItemId#593747L, demandChannel#593749, demandStream#593750, kpis#593751]
Keys [2]: [shardId#593746, worklistShardItemId#593747L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#593749, demandStream, demandStream#593750, kpis, kpis#593751), 0, 0)]
Aggregate Attributes [1]: [buf#593926]
Results [3]: [shardId#593746, worklistShardItemId#593747L, buf#593927]
(39) Exchange
Input [3]: [shardId#593746, worklistShardItemId#593747L, buf#593927]
Arguments: hashpartitioning(shardId#593746, worklistShardItemId#593747L, 20), ENSURE_REQUIREMENTS, [plan_id=250633]
(40) ObjectHashAggregate
Input [3]: [shardId#593746, worklistShardItemId#593747L, buf#593927]
Keys [2]: [shardId#593746, worklistShardItemId#593747L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#593749, demandStream, demandStream#593750, kpis, kpis#593751), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#593749, demandStream, demandStream#593750, kpis, kpis#593751), 0, 0)#593745]
Results [3]: [shardId#593746, worklistShardItemId#593747L, collect_list(struct(demandChannel, demandChannel#593749, demandStream, demandStream#593750, kpis, kpis#593751), 0, 0)#593745 AS channelStreamSpecificKpis#593738]
(41) Sort [codegen id : 9]
Input [3]: [shardId#593746, worklistShardItemId#593747L, channelStreamSpecificKpis#593738]
Arguments: [shardId#593746 ASC NULLS FIRST, worklistShardItemId#593747L ASC NULLS FIRST], false, 0
(42) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#589610, worklistShardItemId#590122L]
Right keys [2]: [shardId#593746, worklistShardItemId#593747L]
Join type: LeftOuter
Join condition: None
(43) Project [codegen id : 10]
Output [41]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340, prodLocSpecificKpis#593737, coalesce(channelStreamSpecificKpis#593738, []) AS channelStreamSpecificKpis#593752]
Input [43]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340, prodLocSpecificKpis#593737, shardId#593746, worklistShardItemId#593747L, channelStreamSpecificKpis#593738]
(44) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#593759, worklistShardItemId#593760L, qty#593761, demandChannel#593762, demandStream#593763, kpis#593764]
Arguments: [shardId#593759, worklistShardItemId#593760L, qty#593761, demandChannel#593762, demandStream#593763, kpis#593764], MapPartitionsRDD[28553] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(45) Filter [codegen id : 11]
Input [6]: [shardId#593759, worklistShardItemId#593760L, qty#593761, demandChannel#593762, demandStream#593763, kpis#593764]
Condition : ((isnotnull(qty#593761) AND isnotnull(kpis#593764)) AND (isnotnull(shardId#593759) AND isnotnull(worklistShardItemId#593760L)))
(46) Project [codegen id : 11]
Output [4]: [shardId#593759, worklistShardItemId#593760L, qty#593761, kpis#593764]
Input [6]: [shardId#593759, worklistShardItemId#593760L, qty#593761, demandChannel#593762, demandStream#593763, kpis#593764]
(47) ObjectHashAggregate
Input [4]: [shardId#593759, worklistShardItemId#593760L, qty#593761, kpis#593764]
Keys [2]: [shardId#593759, worklistShardItemId#593760L]
Functions [1]: [partial_collect_list(struct(qty, qty#593761, kpis, kpis#593764), 0, 0)]
Aggregate Attributes [1]: [buf#593928]
Results [3]: [shardId#593759, worklistShardItemId#593760L, buf#593929]
(48) Exchange
Input [3]: [shardId#593759, worklistShardItemId#593760L, buf#593929]
Arguments: hashpartitioning(shardId#593759, worklistShardItemId#593760L, 20), ENSURE_REQUIREMENTS, [plan_id=250645]
(49) ObjectHashAggregate
Input [3]: [shardId#593759, worklistShardItemId#593760L, buf#593929]
Keys [2]: [shardId#593759, worklistShardItemId#593760L]
Functions [1]: [collect_list(struct(qty, qty#593761, kpis, kpis#593764), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#593761, kpis, kpis#593764), 0, 0)#593758]
Results [3]: [shardId#593759, worklistShardItemId#593760L, map_from_entries(collect_list(struct(qty, qty#593761, kpis, kpis#593764), 0, 0)#593758) AS quantityKpis#593753]
(50) Sort [codegen id : 12]
Input [3]: [shardId#593759, worklistShardItemId#593760L, quantityKpis#593753]
Arguments: [shardId#593759 ASC NULLS FIRST, worklistShardItemId#593760L ASC NULLS FIRST], false, 0
(51) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#589610, worklistShardItemId#590122L]
Right keys [2]: [shardId#593759, worklistShardItemId#593760L]
Join type: LeftOuter
Join condition: None
(52) Project [codegen id : 13]
Output [42]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340, prodLocSpecificKpis#593737, channelStreamSpecificKpis#593752, coalesce(quantityKpis#593753, map(keys: [], values: [])) AS quantityKpis#593765]
Input [44]: [shardId#589610, worklistShardItemId#590122L, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590323L, originalReplenishmentRunId#590365L, supplierGroup#590325, supplier#590326, supplyingPlant#590330, productGroup#590331, product#590332, plant#590327, subrange#590329, orderDateTime#590333, deliveryDateTime#590328, availabilityDateTime#590334, nextAvailabilityDateTime#590335, constraintValues#590356, constraintOperators#590355, constraintLabels#590354, logisticUnits#590350, orderQuantityBaseUom#590351, orderQuantityBaseUomUuid#590352, splitIndicator#590342L, netPriceAmount#590359, netPriceCurrencyCode#590360, netPriceQuantity#590361, netPriceQuantityUom#590362, netPriceQuantityUomUuid#590363, sourceOfSupplyUuid#590337, minimumOrderQuantity#590353, orderProposalItemId#590324, orderProposalItemGroupId#590347, optimizationGroups#590366, measurements#590364, externalProductId#590348, externalPlantId#590349, previousOrderProposal#590343L, isFallbackOrderOnly#590340, prodLocSpecificKpis#593737, channelStreamSpecificKpis#593752, shardId#593759, worklistShardItemId#593760L, quantityKpis#593753]
(53) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#590300, channelStreamSpecificKpis#593752, constraintLabels#590312, constraintOperators#590313, constraintValues#590315, deliveryDateTime#590299, isFallbackOrderOnly#590302, logisticUnits#590317, measurements#590310, minimumOrderQuantity#590311, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, nextAvailabilityDateTime#590301, optimizationGroups#590318, orderDateTime#590298, orderProposalId#590280L, orderProposalItemGroupId#590282, orderProposalItemId#590281, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, originalReplenishmentRunId#590283L, plant#590294, previousOrderProposal#590286L, prodLocSpecificKpis#593737, product#590293, productGroup#590322, qty#590124, quantityAfterProdPlantOptimization#590123, quantityKpis#593765, shardId#589610, sourceOfSupplyUuid#590289, splitIndicator#590285L, subrange#590292, supplier#590291, supplierGroup#590290, supplyingPlant#590321]
Condition : NOT (isFallbackOrderOnly#590302 <=> true)
(54) Project [codegen id : 1]
Output [36]: [shardId#589610, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, availabilityDateTime#590300, nextAvailabilityDateTime#590301, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, sourceOfSupplyUuid#590289, minimumOrderQuantity#590311, orderProposalItemId#590281, orderProposalItemGroupId#590282, optimizationGroups#590318, measurements#590310, previousOrderProposal#590286L, prodLocSpecificKpis#593737, channelStreamSpecificKpis#593752, quantityKpis#593765, arrays_zip(constraintLabels#590312, constraintOperators#590313, constraintValues#590315, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#594179]
Input [39]: [availabilityDateTime#590300, channelStreamSpecificKpis#593752, constraintLabels#590312, constraintOperators#590313, constraintValues#590315, deliveryDateTime#590299, isFallbackOrderOnly#590302, logisticUnits#590317, measurements#590310, minimumOrderQuantity#590311, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, nextAvailabilityDateTime#590301, optimizationGroups#590318, orderDateTime#590298, orderProposalId#590280L, orderProposalItemGroupId#590282, orderProposalItemId#590281, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, originalReplenishmentRunId#590283L, plant#590294, previousOrderProposal#590286L, prodLocSpecificKpis#593737, product#590293, productGroup#590322, qty#590124, quantityAfterProdPlantOptimization#590123, quantityKpis#593765, shardId#589610, sourceOfSupplyUuid#590289, splitIndicator#590285L, subrange#590292, supplier#590291, supplierGroup#590290, supplyingPlant#590321]
(55) Project
Output [37]: [shardId#589610, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, availabilityDateTime#590300, nextAvailabilityDateTime#590301, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, sourceOfSupplyUuid#590289, orderProposalItemId#590281, orderProposalItemGroupId#590282, optimizationGroups#590318, measurements#590310, previousOrderProposal#590286L, prodLocSpecificKpis#593737, channelStreamSpecificKpis#593752, quantityKpis#593765, struct(minServiceLevel, array_min(filter(constraintStructArray#594179, lambdafunction((lambda x_1523#594186.constraintLabels = ServiceLevel), lambda x_1523#594186, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#594179, lambdafunction((lambda x_1524#594187.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_1524#594187, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#594179, lambdafunction((lambda x_1525#594188.constraintLabels = RangeOfCoverage), lambda x_1525#594188, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#590311, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#593737, lambdafunction((lambda x_1526#594189.label = NonListingStartTimestamp), lambda x_1526#594189, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#594185, CASE WHEN (qty#590124 <=> quantityAfterProdPlantOptimization#590123) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#590124 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594257.isOrderUnit, lambda x_1527#594257, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594258.isOrderUnit, lambda x_1527#594258, false)), 1, None, false).numerator as double))), qty#590124), orderQuantityUom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594259.isOrderUnit, lambda x_1527#594259, false)), 1, None, false).uom, orderQuantityBaseUom#590303), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594260.isOrderUnit, lambda x_1527#594260, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304), candidateOrderQuantityInBaseUnit, qty#590124, orderQuantityBaseUom, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#590304, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1529#594261.isPreferred AND (((qty#590124 * cast(lambda x_1529#594261.denominator as double)) % cast(lambda x_1529#594261.numerator as double)) = 0.0)), lambda x_1529#594261, false)), lambdafunction(struct(inPreferredQuantity, ((qty#590124 * cast(lambda x_1530#594299.denominator as double)) / cast(lambda x_1530#594299.numerator as double)), uom, lambda x_1530#594299.uom, uomUuid, lambda x_1530#594299.uomUuid), lambda x_1530#594299, false))).inPreferredQuantity, coalesce((qty#590124 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594262.isOrderUnit, lambda x_1528#594262, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594263.isOrderUnit, lambda x_1528#594263, false)), 1, None, false).numerator as double))), qty#590124)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1529#594264.isPreferred AND (((qty#590124 * cast(lambda x_1529#594264.denominator as double)) % cast(lambda x_1529#594264.numerator as double)) = 0.0)), lambda x_1529#594264, false)), lambdafunction(struct(inPreferredQuantity, ((qty#590124 * cast(lambda x_1530#594300.denominator as double)) / cast(lambda x_1530#594300.numerator as double)), uom, lambda x_1530#594300.uom, uomUuid, lambda x_1530#594300.uomUuid), lambda x_1530#594300, false))).uom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594265.isOrderUnit, lambda x_1528#594265, false)), 1, None, false).uom, orderQuantityBaseUom#590303)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1529#594266.isPreferred AND (((qty#590124 * cast(lambda x_1529#594266.denominator as double)) % cast(lambda x_1529#594266.numerator as double)) = 0.0)), lambda x_1529#594266, false)), lambdafunction(struct(inPreferredQuantity, ((qty#590124 * cast(lambda x_1530#594301.denominator as double)) / cast(lambda x_1530#594301.numerator as double)), uom, lambda x_1530#594301.uom, uomUuid, lambda x_1530#594301.uomUuid), lambda x_1530#594301, false))).uomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594267.isOrderUnit, lambda x_1528#594267, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304)), serviceLevel, coalesce(filter(element_at(quantityKpis#593765, qty#590124, None, false), lambdafunction((lambda x_1535#594268.label = ServiceLevel), lambda x_1535#594268, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#590124 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594271.isOrderUnit, lambda x_1527#594271, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594272.isOrderUnit, lambda x_1527#594272, false)), 1, None, false).numerator as double))), qty#590124), orderQuantityUom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594273.isOrderUnit, lambda x_1527#594273, false)), 1, None, false).uom, orderQuantityBaseUom#590303), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1527#594274.isOrderUnit, lambda x_1527#594274, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304), candidateOrderQuantityInBaseUnit, qty#590124, orderQuantityBaseUom, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#590304, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1529#594275.isPreferred AND (((qty#590124 * cast(lambda x_1529#594275.denominator as double)) % cast(lambda x_1529#594275.numerator as double)) = 0.0)), lambda x_1529#594275, false)), lambdafunction(struct(inPreferredQuantity, ((qty#590124 * cast(lambda x_1530#594302.denominator as double)) / cast(lambda x_1530#594302.numerator as double)), uom, lambda x_1530#594302.uom, uomUuid, lambda x_1530#594302.uomUuid), lambda x_1530#594302, false))).inPreferredQuantity, coalesce((qty#590124 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594276.isOrderUnit, lambda x_1528#594276, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594277.isOrderUnit, lambda x_1528#594277, false)), 1, None, false).numerator as double))), qty#590124)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1529#594278.isPreferred AND (((qty#590124 * cast(lambda x_1529#594278.denominator as double)) % cast(lambda x_1529#594278.numerator as double)) = 0.0)), lambda x_1529#594278, false)), lambdafunction(struct(inPreferredQuantity, ((qty#590124 * cast(lambda x_1530#594303.denominator as double)) / cast(lambda x_1530#594303.numerator as double)), uom, lambda x_1530#594303.uom, uomUuid, lambda x_1530#594303.uomUuid), lambda x_1530#594303, false))).uom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594279.isOrderUnit, lambda x_1528#594279, false)), 1, None, false).uom, orderQuantityBaseUom#590303)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1529#594280.isPreferred AND (((qty#590124 * cast(lambda x_1529#594280.denominator as double)) % cast(lambda x_1529#594280.numerator as double)) = 0.0)), lambda x_1529#594280, false)), lambdafunction(struct(inPreferredQuantity, ((qty#590124 * cast(lambda x_1530#594304.denominator as double)) / cast(lambda x_1530#594304.numerator as double)), uom, lambda x_1530#594304.uom, uomUuid, lambda x_1530#594304.uomUuid), lambda x_1530#594304, false))).uomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1528#594281.isOrderUnit, lambda x_1528#594281, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304)), serviceLevel, coalesce(filter(element_at(quantityKpis#593765, qty#590124, None, false), lambdafunction((lambda x_1538#594282.label = ServiceLevel), lambda x_1538#594282, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#590123 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1531#594285.isOrderUnit, lambda x_1531#594285, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1531#594286.isOrderUnit, lambda x_1531#594286, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#590123), orderQuantityUom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1531#594287.isOrderUnit, lambda x_1531#594287, false)), 1, None, false).uom, orderQuantityBaseUom#590303), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1531#594288.isOrderUnit, lambda x_1531#594288, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#590123, orderQuantityBaseUom, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#590304, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1533#594289.isPreferred AND (((quantityAfterProdPlantOptimization#590123 * cast(lambda x_1533#594289.denominator as double)) % cast(lambda x_1533#594289.numerator as double)) = 0.0)), lambda x_1533#594289, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#590123 * cast(lambda x_1534#594305.denominator as double)) / cast(lambda x_1534#594305.numerator as double)), uom, lambda x_1534#594305.uom, uomUuid, lambda x_1534#594305.uomUuid), lambda x_1534#594305, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#590123 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1532#594290.isOrderUnit, lambda x_1532#594290, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1532#594291.isOrderUnit, lambda x_1532#594291, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#590123)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1533#594292.isPreferred AND (((quantityAfterProdPlantOptimization#590123 * cast(lambda x_1533#594292.denominator as double)) % cast(lambda x_1533#594292.numerator as double)) = 0.0)), lambda x_1533#594292, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#590123 * cast(lambda x_1534#594306.denominator as double)) / cast(lambda x_1534#594306.numerator as double)), uom, lambda x_1534#594306.uom, uomUuid, lambda x_1534#594306.uomUuid), lambda x_1534#594306, false))).uom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1532#594293.isOrderUnit, lambda x_1532#594293, false)), 1, None, false).uom, orderQuantityBaseUom#590303)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#590317, lambdafunction((lambda x_1533#594294.isPreferred AND (((quantityAfterProdPlantOptimization#590123 * cast(lambda x_1533#594294.denominator as double)) % cast(lambda x_1533#594294.numerator as double)) = 0.0)), lambda x_1533#594294, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#590123 * cast(lambda x_1534#594307.denominator as double)) / cast(lambda x_1534#594307.numerator as double)), uom, lambda x_1534#594307.uom, uomUuid, lambda x_1534#594307.uomUuid), lambda x_1534#594307, false))).uomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1532#594295.isOrderUnit, lambda x_1532#594295, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304)), serviceLevel, coalesce(filter(element_at(quantityKpis#593765, quantityAfterProdPlantOptimization#590123, None, false), lambdafunction((lambda x_1541#594296.label = ServiceLevel), lambda x_1541#594296, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#594256, coalesce(filter(prodLocSpecificKpis#593737, lambdafunction((lambda x_1544#594309.label = InitialStockQty), lambda x_1544#594309, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#594308, coalesce(filter(prodLocSpecificKpis#593737, lambdafunction((lambda x_1545#594311.label = DemandPeriodEndTimestamp), lambda x_1545#594311, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#594310]
Input [36]: [shardId#589610, quantityAfterProdPlantOptimization#590123, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, availabilityDateTime#590300, nextAvailabilityDateTime#590301, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, sourceOfSupplyUuid#590289, minimumOrderQuantity#590311, orderProposalItemId#590281, orderProposalItemGroupId#590282, optimizationGroups#590318, measurements#590310, previousOrderProposal#590286L, prodLocSpecificKpis#593737, channelStreamSpecificKpis#593752, quantityKpis#593765, constraintStructArray#594179]
(56) Project
Output [21]: [shardId#589610, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, orderProposalItemId#590281, orderProposalItemGroupId#590282, previousOrderProposal#590286L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#590291, supplyingPlant, supplyingPlant#590321, productGroup, productGroup#590322, product, product#590293, plant, plant#590294, supplierSubRange, subrange#590292, sourceOfSupplyUuid, sourceOfSupplyUuid#590289, deliveryDateTime, deliveryDateTime#590299, unitPrice, netPriceAmount#590308, unitPriceCurrency, netPriceCurrencyCode#590309, unitPriceQuantity, ... 37 more fields) AS parentItem#594390]
Input [37]: [shardId#589610, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, availabilityDateTime#590300, nextAvailabilityDateTime#590301, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, netPriceAmount#590308, netPriceCurrencyCode#590309, netPriceQuantity#590305, netPriceQuantityUom#590306, netPriceQuantityUomUuid#590307, sourceOfSupplyUuid#590289, orderProposalItemId#590281, orderProposalItemGroupId#590282, optimizationGroups#590318, measurements#590310, previousOrderProposal#590286L, prodLocSpecificKpis#593737, channelStreamSpecificKpis#593752, quantityKpis#593765, constraintBenchmark#594185, calculationAnalysis#594256, inventoryDateTime#594308, demandPeriodEndDateTime#594310]
(57) Project
Output [12]: [shardId#589610, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, orderDateTime#590298, splitIndicator#590285L, orderProposalItemGroupId#590282, previousOrderProposal#590286L, parentItem#594390, struct(itemId, orderProposalItemId#590281, supplier, supplier#590291, supplyingPlant, supplyingPlant#590321, productGroup, productGroup#590322, product, product#590293, plant, plant#590294, supplierSubRange, subrange#590292, deliveryDateTime, deliveryDateTime#590299, orderQuantity, coalesce((qty#590124 * (cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1569#594424.isOrderUnit, lambda x_1569#594424, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1569#594425.isOrderUnit, lambda x_1569#594425, false)), 1, None, false).numerator as double))), qty#590124), orderQuantityUom, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1569#594426.isOrderUnit, lambda x_1569#594426, false)), 1, None, false).uom, orderQuantityBaseUom#590303), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#590317, lambdafunction(lambda x_1569#594427.isOrderUnit, lambda x_1569#594427, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#590304), orderQuantityInBaseUnit, qty#590124, orderQuantityBaseUom, ... 13 more fields) AS item#594421]
Input [21]: [shardId#589610, qty#590124, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, productGroup#590322, product#590293, plant#590294, subrange#590292, orderDateTime#590298, deliveryDateTime#590299, logisticUnits#590317, orderQuantityBaseUom#590303, orderQuantityBaseUomUuid#590304, splitIndicator#590285L, orderProposalItemId#590281, orderProposalItemGroupId#590282, previousOrderProposal#590286L, parentItem#594390]
(58) ObjectHashAggregate
Input [12]: [shardId#589610, orderProposalId#590280L, originalReplenishmentRunId#590283L, supplierGroup#590290, supplier#590291, supplyingPlant#590321, orderDateTime#590298, splitIndicator#590285L, orderProposalItemGroupId#590282, previousOrderProposal#590286L, parentItem#594390, item#594421]
Keys [4]: [shardId#589610, orderProposalId#590280L, splitIndicator#590285L, orderProposalItemGroupId#590282]
Functions [8]: [partial_max(originalReplenishmentRunId#590283L), partial_max(supplierGroup#590290), partial_max(supplier#590291), partial_max(supplyingPlant#590321), partial_max(orderDateTime#590298), partial_collect_list(parentItem#594390, 0, 0), partial_collect_set(previousOrderProposal#590286L, 0, 0), partial_collect_list(item#594421, 0, 0)]
Aggregate Attributes [8]: [max#595682L, max#595683, max#595684, max#595685, max#595686, buf#595687, buf#595688, buf#595689]
Results [12]: [shardId#589610, orderProposalId#590280L, splitIndicator#590285L, orderProposalItemGroupId#590282, max#595690L, max#595691, max#595692, max#595693, max#595694, buf#595695, buf#595696, buf#595697]
(59) Exchange
Input [12]: [shardId#589610, orderProposalId#590280L, splitIndicator#590285L, orderProposalItemGroupId#590282, max#595690L, max#595691, max#595692, max#595693, max#595694, buf#595695, buf#595696, buf#595697]
Arguments: hashpartitioning(shardId#589610, orderProposalId#590280L, splitIndicator#590285L, orderProposalItemGroupId#590282, 20), ENSURE_REQUIREMENTS, [plan_id=250888]
(60) ObjectHashAggregate
Input [12]: [shardId#589610, orderProposalId#590280L, splitIndicator#590285L, orderProposalItemGroupId#590282, max#595690L, max#595691, max#595692, max#595693, max#595694, buf#595695, buf#595696, buf#595697]
Keys [4]: [shardId#589610, orderProposalId#590280L, splitIndicator#590285L, orderProposalItemGroupId#590282]
Functions [8]: [max(originalReplenishmentRunId#590283L), max(supplierGroup#590290), max(supplier#590291), max(supplyingPlant#590321), max(orderDateTime#590298), collect_list(parentItem#594390, 0, 0), collect_set(previousOrderProposal#590286L, 0, 0), collect_list(item#594421, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#590283L)#594490L, max(supplierGroup#590290)#594491, max(supplier#590291)#594492, max(supplyingPlant#590321)#594493, max(orderDateTime#590298)#594494, collect_list(parentItem#594390, 0, 0)#594495, collect_set(previousOrderProposal#590286L, 0, 0)#594497, collect_list(item#594421, 0, 0)#594496]
Results [10]: [shardId#589610, orderProposalId#590280L, max(originalReplenishmentRunId#590283L)#594490L AS originalReplenishmentRunId#594438L, max(supplierGroup#590290)#594491 AS supplierGroup#594439, max(supplier#590291)#594492 AS supplier#594440, max(supplyingPlant#590321)#594493 AS supplyingPlant#594441, max(orderDateTime#590298)#594494 AS orderDateTime#594442, collect_list(parentItem#594390, 0, 0)#594495 AS parentItems#594443, collect_set(previousOrderProposal#590286L, 0, 0)#594497 AS previousOrderProposals#594445, struct(itemGroupId, coalesce(orderProposalItemGroupId#590282, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#594421, 0, 0)#594496) AS itemGroup#594499]
(61) ObjectHashAggregate
Input [10]: [shardId#589610, orderProposalId#590280L, originalReplenishmentRunId#594438L, supplierGroup#594439, supplier#594440, supplyingPlant#594441, orderDateTime#594442, parentItems#594443, previousOrderProposals#594445, itemGroup#594499]
Keys [2]: [shardId#589610, orderProposalId#590280L]
Functions [8]: [partial_max(originalReplenishmentRunId#594438L), partial_max(supplierGroup#594439), partial_max(supplier#594440), partial_max(supplyingPlant#594441), partial_max(orderDateTime#594442), partial_collect_list(itemGroup#594499, 0, 0), partial_collect_list(parentItems#594443, 0, 0), partial_collect_set(previousOrderProposals#594445, 0, 0)]
Aggregate Attributes [8]: [max#595666L, max#595667, max#595668, max#595669, max#595670, buf#595671, buf#595672, buf#595673]
Results [10]: [shardId#589610, orderProposalId#590280L, max#595674L, max#595675, max#595676, max#595677, max#595678, buf#595679, buf#595680, buf#595681]
(62) Exchange
Input [10]: [shardId#589610, orderProposalId#590280L, max#595674L, max#595675, max#595676, max#595677, max#595678, buf#595679, buf#595680, buf#595681]
Arguments: hashpartitioning(shardId#589610, orderProposalId#590280L, 20), ENSURE_REQUIREMENTS, [plan_id=250891]
(63) ObjectHashAggregate
Input [10]: [shardId#589610, orderProposalId#590280L, max#595674L, max#595675, max#595676, max#595677, max#595678, buf#595679, buf#595680, buf#595681]
Keys [2]: [shardId#589610, orderProposalId#590280L]
Functions [8]: [max(originalReplenishmentRunId#594438L), max(supplierGroup#594439), max(supplier#594440), max(supplyingPlant#594441), max(orderDateTime#594442), collect_list(itemGroup#594499, 0, 0), collect_list(parentItems#594443, 0, 0), collect_set(previousOrderProposals#594445, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#594438L)#594521L, max(supplierGroup#594439)#594522, max(supplier#594440)#594523, max(supplyingPlant#594441)#594524, max(orderDateTime#594442)#594525, collect_list(itemGroup#594499, 0, 0)#594526, collect_list(parentItems#594443, 0, 0)#594527, collect_set(previousOrderProposals#594445, 0, 0)#594528]
Results [10]: [shardId#589610, orderProposalId#590280L, max(originalReplenishmentRunId#594438L)#594521L AS originalReplenishmentRunId#594500L, max(supplierGroup#594439)#594522 AS supplierGroup#594501, max(supplier#594440)#594523 AS supplier#594502, max(supplyingPlant#594441)#594524 AS supplyingPlant#594503, max(orderDateTime#594442)#594525 AS orderDateTime#594504, collect_list(itemGroup#594499, 0, 0)#594526 AS itemGroups#594505, flatten(collect_list(parentItems#594443, 0, 0)#594527) AS parentItems#594506, flatten(collect_set(previousOrderProposals#594445, 0, 0)#594528) AS previousOrderProposals#594507]
(64) Project
Output [2]: [shardId#589610, struct(orderProposalId, orderProposalId#590280L, originalReplenishmentRunId, originalReplenishmentRunId#594500L, supplierGroup, supplierGroup#594501, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#594501) THEN supplier#594502 END, supplyingPlant, supplyingPlant#594503, orderDateTime, orderDateTime#594504, itemGroups, itemGroups#594505, previousOrderProposals, array_distinct(previousOrderProposals#594507), parentItems, parentItems#594506) AS orderProposal#594532]
Input [10]: [shardId#589610, orderProposalId#590280L, originalReplenishmentRunId#594500L, supplierGroup#594501, supplier#594502, supplyingPlant#594503, orderDateTime#594504, itemGroups#594505, parentItems#594506, previousOrderProposals#594507]
(65) Project
Output [11]: [shardId#589610, orderProposal#594532.orderProposalId AS _extract_orderProposalId#595298L, orderProposal#594532.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#595299L, orderProposal#594532.supplierGroup AS _extract_supplierGroup#595300, orderProposal#594532.supplier AS _extract_supplier#595301, orderProposal#594532.supplyingPlant AS _extract_supplyingPlant#595302, orderProposal#594532.orderDateTime AS _extract_orderDateTime#595303, orderProposal#594532.itemGroups AS _extract_itemGroups#595304, orderProposal#594532.previousOrderProposals AS _extract_previousOrderProposals#595305, orderProposal#594532.parentItems AS _extract_parentItems#595306, orderProposal#594532.orderProposalId AS _extract_orderProposalId#595307L]
Input [2]: [shardId#589610, orderProposal#594532]
(66) Exchange
Input [11]: [shardId#589610, _extract_orderProposalId#595298L, _extract_originalReplenishmentRunId#595299L, _extract_supplierGroup#595300, _extract_supplier#595301, _extract_supplyingPlant#595302, _extract_orderDateTime#595303, _extract_itemGroups#595304, _extract_previousOrderProposals#595305, _extract_parentItems#595306, _extract_orderProposalId#595307L]
Arguments: hashpartitioning(coalesce(shardId#589610, ), isnull(shardId#589610), coalesce(_extract_orderProposalId#595307L, 0), isnull(_extract_orderProposalId#595307L), 20), ENSURE_REQUIREMENTS, [plan_id=250895]
(67) Sort
Input [11]: [shardId#589610, _extract_orderProposalId#595298L, _extract_originalReplenishmentRunId#595299L, _extract_supplierGroup#595300, _extract_supplier#595301, _extract_supplyingPlant#595302, _extract_orderDateTime#595303, _extract_itemGroups#595304, _extract_previousOrderProposals#595305, _extract_parentItems#595306, _extract_orderProposalId#595307L]
Arguments: [coalesce(shardId#589610, ) ASC NULLS FIRST, isnull(shardId#589610) ASC NULLS FIRST, coalesce(_extract_orderProposalId#595307L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#595307L) ASC NULLS FIRST], false, 0
(68) InMemoryTableScan
Output [3]: [shardId#594555, orderProposalId#594556L, optimizationGroups#594558]
Arguments: [shardId#594555, orderProposalId#594556L, optimizationGroups#594558], [isnotnull(orderProposalId#594556L)]
(69) InMemoryRelation
Arguments: [shardId#594555, orderProposalId#594556L, items#594557, optimizationGroups#594558, isOptimal#594559, optimizationInsights#594561], StorageLevel(disk, memory, 2 replicas)
(70) Filter [codegen id : 2]
Input [3]: [shardId#594555, orderProposalId#594556L, optimizationGroups#594558]
Condition : isnotnull(orderProposalId#594556L)
(71) BroadcastExchange
Input [3]: [shardId#594555, orderProposalId#594556L, optimizationGroups#594558]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=250900]
(72) InMemoryTableScan
Output [2]: [items#594174, shardId#594172]
Arguments: [items#594174, shardId#594172], [(size(items#594174.worklistShardItemId, true) > 0), isnotnull(items#594174.worklistShardItemId), (shardId#594172 = 0_1_10000002107)]
(73) InMemoryRelation
Arguments: [shardId#594172, orderProposalId#594173L, items#594174, optimizationGroups#594175, isOptimal#594176, optimizationInsights#594178], StorageLevel(disk, memory, 2 replicas)
(74) Filter [codegen id : 3]
Input [2]: [items#594174, shardId#594172]
Condition : (((size(items#594174.worklistShardItemId, true) > 0) AND isnotnull(items#594174.worklistShardItemId)) AND (shardId#594172 = 0_1_10000002107))
(75) Project [codegen id : 3]
Output [1]: [items#594174.worklistShardItemId AS _extract_worklistShardItemId#595203]
Input [2]: [items#594174, shardId#594172]
(76) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#595203]
Arguments: explode(_extract_worklistShardItemId#595203), false, [item#594562L]
(77) Project [codegen id : 3]
Output [1]: [item#594562L AS worklistShardItemId#594563L]
Input [1]: [item#594562L]
(78) BroadcastExchange
Input [1]: [worklistShardItemId#594563L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=250908]
(79) Scan parquet
Output [5]: [orderProposalId#594611L, isFallbackOrderOnly#594628, worklistShardItemId#594634L, shardId#594655, sequenceId#594633]
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/10000002107]
PartitionFilters: [isnotnull(shardId#594655), isnotnull(sequenceId#594633), (shardId#594655 = 0_1_10000002107), (sequenceId#594633 = 2)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(80) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#594611L, isFallbackOrderOnly#594628, worklistShardItemId#594634L, shardId#594655, sequenceId#594633]
(81) Filter [codegen id : 4]
Input [5]: [orderProposalId#594611L, isFallbackOrderOnly#594628, worklistShardItemId#594634L, shardId#594655, sequenceId#594633]
Condition : ((isnotnull(worklistShardItemId#594634L) AND NOT (isFallbackOrderOnly#594628 <=> true)) AND isnotnull(orderProposalId#594611L))
(82) Project [codegen id : 4]
Output [2]: [orderProposalId#594611L, worklistShardItemId#594634L]
Input [5]: [orderProposalId#594611L, isFallbackOrderOnly#594628, worklistShardItemId#594634L, shardId#594655, sequenceId#594633]
(83) Exchange
Input [2]: [orderProposalId#594611L, worklistShardItemId#594634L]
Arguments: hashpartitioning(worklistShardItemId#594634L, 20), REPARTITION_BY_NUM, [plan_id=250915]
(84) Project
Output [2]: [worklistShardItemId#594634L, orderProposalId#594611L]
Input [2]: [orderProposalId#594611L, worklistShardItemId#594634L]
(85) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#594563L]
Right keys [1]: [worklistShardItemId#594634L]
Join type: Inner
Join condition: None
(86) Project [codegen id : 5]
Output [1]: [orderProposalId#594611L]
Input [3]: [worklistShardItemId#594563L, worklistShardItemId#594634L, orderProposalId#594611L]
(87) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#594611L]
Keys [1]: [orderProposalId#594611L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#594611L]
(88) Exchange
Input [1]: [orderProposalId#594611L]
Arguments: hashpartitioning(orderProposalId#594611L, 20), ENSURE_REQUIREMENTS, [plan_id=250922]
(89) HashAggregate
Input [1]: [orderProposalId#594611L]
Keys [1]: [orderProposalId#594611L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#594611L]
(90) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#594556L]
Right keys [1]: [orderProposalId#594611L]
Join type: Inner
Join condition: None
(91) Project
Output [3]: [orderProposalId#594556L, shardId#594555, coalesce(transform(optimizationGroups#594558, lambdafunction(struct(optGroupId, lambda x_1573#594553.optGroupId, minOrderProfile, lambda x_1573#594553.minOrderProfile, assignmentDetails, lambda x_1573#594553.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_1573#594553.minOrderGoal.dimensionType, unit, lambda x_1573#594553.minOrderGoal.unit, unitUuid, lambda x_1573#594553.minOrderGoal.unitUuid, goalValue, lambda x_1573#594553.minOrderGoal.minOrderValue, calcValue, lambda x_1573#594553.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_1573#594553, false)), []) AS optimizationGroups#594552]
Input [4]: [shardId#594555, orderProposalId#594556L, optimizationGroups#594558, orderProposalId#594611L]
(92) Exchange
Input [3]: [orderProposalId#594556L, shardId#594555, optimizationGroups#594552]
Arguments: hashpartitioning(coalesce(shardId#594555, ), isnull(shardId#594555), coalesce(orderProposalId#594556L, 0), isnull(orderProposalId#594556L), 20), ENSURE_REQUIREMENTS, [plan_id=250928]
(93) Sort [codegen id : 7]
Input [3]: [orderProposalId#594556L, shardId#594555, optimizationGroups#594552]
Arguments: [coalesce(shardId#594555, ) ASC NULLS FIRST, isnull(shardId#594555) ASC NULLS FIRST, coalesce(orderProposalId#594556L, 0) ASC NULLS FIRST, isnull(orderProposalId#594556L) ASC NULLS FIRST], false, 0
(94) SortMergeJoin
Left keys [4]: [coalesce(shardId#589610, ), isnull(shardId#589610), coalesce(_extract_orderProposalId#595307L, 0), isnull(_extract_orderProposalId#595307L)]
Right keys [4]: [coalesce(shardId#594555, ), isnull(shardId#594555), coalesce(orderProposalId#594556L, 0), isnull(orderProposalId#594556L)]
Join type: LeftOuter
Join condition: None
(95) Project
Output [2]: [shardId#589610, named_struct(orderProposalId, _extract_orderProposalId#595307L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#595299L, supplierGroup, _extract_supplierGroup#595300, optimizationGroups, coalesce(optimizationGroups#594552, []), supplier, _extract_supplier#595301, supplyingPlant, _extract_supplyingPlant#595302, orderDateTime, _extract_orderDateTime#595303, itemGroups, _extract_itemGroups#595304, previousOrderProposals, _extract_previousOrderProposals#595305, parentItems, _extract_parentItems#595306) AS orderProposal#594659]
Input [14]: [shardId#589610, _extract_orderProposalId#595298L, _extract_originalReplenishmentRunId#595299L, _extract_supplierGroup#595300, _extract_supplier#595301, _extract_supplyingPlant#595302, _extract_orderDateTime#595303, _extract_itemGroups#595304, _extract_previousOrderProposals#595305, _extract_parentItems#595306, _extract_orderProposalId#595307L, orderProposalId#594556L, shardId#594555, optimizationGroups#594552]
(96) Project
Output [3]: [shardId#589610, orderProposal#594659, CASE WHEN (size(orderProposal#594659.parentItems, true) > 2000) THEN xxhash64(orderProposal#594659.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#594659.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#597718L]
Input [2]: [orderProposal#594659, shardId#589610]
(97) ObjectHashAggregate
Input [3]: [shardId#589610, orderProposal#594659, resultSeparationId#597718L]
Keys [2]: [shardId#589610, resultSeparationId#597718L]
Functions [1]: [partial_collect_list(orderProposal#594659, 0, 0)]
Aggregate Attributes [1]: [buf#597757]
Results [3]: [shardId#589610, resultSeparationId#597718L, buf#597758]
(98) Exchange
Input [3]: [shardId#589610, resultSeparationId#597718L, buf#597758]
Arguments: hashpartitioning(shardId#589610, resultSeparationId#597718L, 20), ENSURE_REQUIREMENTS, [plan_id=251344]
(99) ObjectHashAggregate
Input [3]: [shardId#589610, resultSeparationId#597718L, buf#597758]
Keys [2]: [shardId#589610, resultSeparationId#597718L]
Functions [1]: [collect_list(orderProposal#594659, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#594659, 0, 0)#597726]
Results [3]: [shardId#589610, resultSeparationId#597718L, collect_list(orderProposal#594659, 0, 0)#597726 AS orderProposals#597722]
(100) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#597835L]
Results [1]: [count#597836L]
(101) Exchange
Input [1]: [count#597836L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=251368]
(102) HashAggregate [codegen id : 2]
Input [1]: [count#597836L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#597789L]
Results [1]: [count(1)#597789L AS count#597785L]