== Physical Plan ==
CollectLimit (106)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- Project (105)
+- Exchange (104)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- ObjectHashAggregate (103)
+- Exchange (102)
+- ObjectHashAggregate (101)
+- Project (100)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- Project (99)
+- SortMergeJoin LeftOuter (98)
:- Sort (71)
: +- Exchange (70)
: +- Project (69)
: +- Project (68)
: +- ObjectHashAggregate (67)
: +- Exchange (66)
: +- ObjectHashAggregate (65)
: +- ObjectHashAggregate (64)
: +- Exchange (63)
: +- ObjectHashAggregate (62)
: +- Project (61)
: +- Project (60)
: +- Project (59)
: +- * Project (58)
: +- * Filter (57)
: +- InMemoryTableScan (7)
: +- InMemoryRelation (8)
: +- * Project (56)
: +- * SortMergeJoin LeftOuter (55)
: :- * Project (47)
: : +- * SortMergeJoin LeftOuter (46)
: : :- * Project (38)
: : : +- * SortMergeJoin LeftOuter (37)
: : : :- * Sort (31)
: : : : +- Exchange (30)
: : : : +- * Project (29)
: : : : +- * SortMergeJoin LeftOuter (28)
: : : : :- * Sort (20)
: : : : : +- Exchange (19)
: : : : : +- * Project (18)
: : : : : +- * Generate (17)
: : : : : +- * Filter (16)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (15)
: : : : : +- InMemoryTableScan (11)
: : : : : +- InMemoryRelation (12)
: : : : : +- * Filter (14)
: : : : : +- * Scan ExistingRDD (13)
: : : : +- * Sort (27)
: : : : +- * Project (26)
: : : : +- Exchange (25)
: : : : +- * Project (24)
: : : : +- * Filter (23)
: : : : +- * ColumnarToRow (22)
: : : : +- Scan parquet (21)
: : : +- * Sort (36)
: : : +- Exchange (35)
: : : +- * Project (34)
: : : +- * Filter (33)
: : : +- * Scan ExistingRDD (32)
: : +- * Sort (45)
: : +- ObjectHashAggregate (44)
: : +- Exchange (43)
: : +- ObjectHashAggregate (42)
: : +- * Project (41)
: : +- * Filter (40)
: : +- * Scan ExistingRDD (39)
: +- * Sort (54)
: +- ObjectHashAggregate (53)
: +- Exchange (52)
: +- ObjectHashAggregate (51)
: +- * Project (50)
: +- * Filter (49)
: +- * Scan ExistingRDD (48)
+- * Sort (97)
+- Exchange (96)
+- Project (95)
+- * BroadcastHashJoin Inner BuildLeft (94)
:- BroadcastExchange (75)
: +- * Filter (74)
: +- InMemoryTableScan (72)
: +- InMemoryRelation (73)
: +- * Filter (15)
: +- InMemoryTableScan (11)
: +- InMemoryRelation (12)
: +- * Filter (14)
: +- * Scan ExistingRDD (13)
+- * HashAggregate (93)
+- Exchange (92)
+- * HashAggregate (91)
+- * Project (90)
+- * BroadcastHashJoin Inner BuildLeft (89)
:- BroadcastExchange (82)
: +- * Project (81)
: +- * Generate (80)
: +- * Project (79)
: +- * Filter (78)
: +- InMemoryTableScan (76)
: +- InMemoryRelation (77)
: +- * Filter (15)
: +- InMemoryTableScan (11)
: +- InMemoryRelation (12)
: +- * Filter (14)
: +- * Scan ExistingRDD (13)
+- * Project (88)
+- Exchange (87)
+- * Project (86)
+- * Filter (85)
+- * ColumnarToRow (84)
+- Scan parquet (83)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#777607, orderProposals#781701], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [3]: [shardId#777607, resultSeparationId#781697L, orderProposals#781701]
Arguments: [shardId#777607, resultSeparationId#781697L, orderProposals#781701]
(4) InMemoryRelation
Arguments: [shardId#777607, resultSeparationId#781697L, orderProposals#781701], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [2]: [orderProposal#779945, shardId#777607]
Arguments: [orderProposal#779945, shardId#777607]
(6) InMemoryRelation
Arguments: [shardId#777607, orderProposal#779945], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [39]: [availabilityDateTime#778297, channelStreamSpecificKpis#779038, constraintLabels#778309, constraintOperators#778310, constraintValues#778312, deliveryDateTime#778296, isFallbackOrderOnly#778299, logisticUnits#778314, measurements#778307, minimumOrderQuantity#778308, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, nextAvailabilityDateTime#778298, optimizationGroups#778315, orderDateTime#778295, orderProposalId#778277L, orderProposalItemGroupId#778279, orderProposalItemId#778278, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, originalReplenishmentRunId#778280L, plant#778291, previousOrderProposal#778283L, prodLocSpecificKpis#779023, product#778290, productGroup#778319, qty#778121, quantityAfterProdPlantOptimization#778120, quantityKpis#779051, shardId#777607, sourceOfSupplyUuid#778286, splitIndicator#778282L, subrange#778289, supplier#778288, supplierGroup#778287, supplyingPlant#778318]
Arguments: [availabilityDateTime#778297, channelStreamSpecificKpis#779038, constraintLabels#778309, constraintOperators#778310, constraintValues#778312, deliveryDateTime#778296, isFallbackOrderOnly#778299, logisticUnits#778314, measurements#778307, minimumOrderQuantity#778308, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, nextAvailabilityDateTime#778298, optimizationGroups#778315, orderDateTime#778295, orderProposalId#778277L, orderProposalItemGroupId#778279, orderProposalItemId#778278, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, originalReplenishmentRunId#778280L, plant#778291, ... 14 more fields], [NOT (isFallbackOrderOnly#778299 <=> true)]
(8) InMemoryRelation
Arguments: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, availabilityDateTime#778297, nextAvailabilityDateTime#778298, constraintValues#778312, constraintOperators#778310, constraintLabels#778309, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, netPriceAmount#778305, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [2]: [shardId#777607, items#777609]
Arguments: [shardId#777607, items#777609], [(size(items#777609, true) > 0), isnotnull(items#777609)]
(10) InMemoryRelation
Arguments: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, optimizationInsights#777613], StorageLevel(disk, memory, 2 replicas)
(11) InMemoryTableScan
Output [6]: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, optimizationInsights#777613]
Arguments: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, optimizationInsights#777613], [isnotnull(shardId#777607), (shardId#777607 = 0_1_10000002108)]
(12) InMemoryRelation
Arguments: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, lastModified#777612, optimizationInsights#777613], StorageLevel(disk, memory, 2 replicas)
(13) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, lastModified#777612, optimizationInsights#777613]
Arguments: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, lastModified#777612, optimizationInsights#777613], MapPartitionsRDD[36570] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(14) Filter [codegen id : 1]
Input [7]: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, lastModified#777612, optimizationInsights#777613]
Condition : (isnotnull(shardId#777607) AND (shardId#777607 = 0_1_10000002108))
(15) Filter [codegen id : 1]
Input [6]: [shardId#777607, orderProposalId#777608L, items#777609, optimizationGroups#777610, isOptimal#777611, optimizationInsights#777613]
Condition : (isnotnull(shardId#777607) AND (shardId#777607 = 0_1_10000002108))
(16) Filter [codegen id : 1]
Input [2]: [shardId#777607, items#777609]
Condition : ((size(items#777609, true) > 0) AND isnotnull(items#777609))
(17) Generate [codegen id : 1]
Input [2]: [shardId#777607, items#777609]
Arguments: explode(items#777609), [shardId#777607], false, [item#778118]
(18) Project [codegen id : 1]
Output [4]: [shardId#777607, item#778118.worklistShardItemId AS worklistShardItemId#778119L, item#778118.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#778120, item#778118.qty AS qty#778121]
Input [2]: [shardId#777607, item#778118]
(19) Exchange
Input [4]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121]
Arguments: hashpartitioning(worklistShardItemId#778119L, 20), ENSURE_REQUIREMENTS, [plan_id=308814]
(20) Sort [codegen id : 2]
Input [4]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121]
Arguments: [worklistShardItemId#778119L ASC NULLS FIRST], false, 0
(21) Scan parquet
Output [38]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363, shardId#778364, sequenceId#778342]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/internal/prod-plant-snapshot/10000002108]
PartitionFilters: [isnotnull(shardId#778364), isnotnull(sequenceId#778342), (shardId#778364 = 0_1_10000002108), (sequenceId#778342 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId)]
ReadSchema: struct<orderProposalId:bigint,orderProposalItemId:string,supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:string,supplyingPlant:string,productGroup:string,product:string,orderDateTime:timestamp,availabilityDateTime:timestamp,nextAvailabilityDateTime:timestamp,sourceOfSupplyUuid:string,isFallbackOrderOnly:boolean,splitIndicator:bigint,previousOrderProposal:bigint,worklistShardItemId:bigint,orderProposalItemGroupId:string,externalProductId:string,externalPlantId:string,logisticUnits:array<struct<uom:string,uomUuid:string,numerator:int,denominator:int,isOrderUnit:boolean,isPreferred:boolean>>,orderQuantityBaseUom:string,orderQuantityBaseUomUuid:string,minimumOrderQuantity:double,constraintLabels:array<string>,constraintOperators:array<string>,constraintValues:array<double>,netPriceAmount:double,netPriceCurrencyCode:string,netPriceQuantity:double,netPriceQuantityUom:string,netPriceQuantityUomUuid:string,measurements:array<struct<value:double,dimensionType:int,dimensionCode:string,dimensionCodeUuid:string,isoCode:string>>,originalReplenishmentRunId:bigint,optimizationGroups:array<string>>
(22) ColumnarToRow [codegen id : 3]
Input [38]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363, shardId#778364, sequenceId#778342]
(23) Filter [codegen id : 3]
Input [38]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363, shardId#778364, sequenceId#778342]
Condition : isnotnull(worklistShardItemId#778343L)
(24) Project [codegen id : 3]
Output [36]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363]
Input [38]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363, shardId#778364, sequenceId#778342]
(25) Exchange
Input [36]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363]
Arguments: hashpartitioning(worklistShardItemId#778343L, 20), REPARTITION_BY_NUM, [plan_id=308824]
(26) Project [codegen id : 4]
Output [36]: [worklistShardItemId#778343L, orderProposalId#778320L, orderProposalItemId#778321, orderProposalItemGroupId#778344, originalReplenishmentRunId#778362L, splitIndicator#778339L, previousOrderProposal#778340L, sourceOfSupplyUuid#778334, supplierGroup#778322, supplier#778323, subrange#778326, product#778329, plant#778324, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, isFallbackOrderOnly#778337, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, netPriceAmount#778356, netPriceCurrencyCode#778357, measurements#778361, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, logisticUnits#778347, optimizationGroups#778363, externalProductId#778345, externalPlantId#778346, supplyingPlant#778327, productGroup#778328]
Input [36]: [orderProposalId#778320L, orderProposalItemId#778321, supplierGroup#778322, supplier#778323, plant#778324, deliveryDateTime#778325, subrange#778326, supplyingPlant#778327, productGroup#778328, product#778329, orderDateTime#778330, availabilityDateTime#778331, nextAvailabilityDateTime#778332, sourceOfSupplyUuid#778334, isFallbackOrderOnly#778337, splitIndicator#778339L, previousOrderProposal#778340L, worklistShardItemId#778343L, orderProposalItemGroupId#778344, externalProductId#778345, externalPlantId#778346, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, measurements#778361, originalReplenishmentRunId#778362L, optimizationGroups#778363]
(27) Sort [codegen id : 4]
Input [36]: [worklistShardItemId#778343L, orderProposalId#778320L, orderProposalItemId#778321, orderProposalItemGroupId#778344, originalReplenishmentRunId#778362L, splitIndicator#778339L, previousOrderProposal#778340L, sourceOfSupplyUuid#778334, supplierGroup#778322, supplier#778323, subrange#778326, product#778329, plant#778324, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, isFallbackOrderOnly#778337, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, netPriceAmount#778356, netPriceCurrencyCode#778357, measurements#778361, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, logisticUnits#778347, optimizationGroups#778363, externalProductId#778345, externalPlantId#778346, supplyingPlant#778327, productGroup#778328]
Arguments: [worklistShardItemId#778343L ASC NULLS FIRST], false, 0
(28) SortMergeJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#778119L]
Right keys [1]: [worklistShardItemId#778343L]
Join type: LeftOuter
Join condition: (shardId#777607 = 0_1_10000002108)
(29) Project [codegen id : 5]
Output [39]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337]
Input [40]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, worklistShardItemId#778343L, orderProposalId#778320L, orderProposalItemId#778321, orderProposalItemGroupId#778344, originalReplenishmentRunId#778362L, splitIndicator#778339L, previousOrderProposal#778340L, sourceOfSupplyUuid#778334, supplierGroup#778322, supplier#778323, subrange#778326, product#778329, plant#778324, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, isFallbackOrderOnly#778337, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, netPriceAmount#778356, netPriceCurrencyCode#778357, measurements#778361, minimumOrderQuantity#778350, constraintLabels#778351, constraintOperators#778352, constraintValues#778353, logisticUnits#778347, optimizationGroups#778363, externalProductId#778345, externalPlantId#778346, supplyingPlant#778327, productGroup#778328]
(30) Exchange
Input [39]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337]
Arguments: hashpartitioning(shardId#777607, worklistShardItemId#778119L, 20), ENSURE_REQUIREMENTS, [plan_id=308833]
(31) Sort [codegen id : 6]
Input [39]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337]
Arguments: [shardId#777607 ASC NULLS FIRST, worklistShardItemId#778119L ASC NULLS FIRST], false, 0
(32) Scan ExistingRDD [codegen id : 7]
Output [6]: [shardId#779016, worklistShardItemId#779017L, qty#779018, demandChannel#779019, demandStream#779020, kpis#779021]
Arguments: [shardId#779016, worklistShardItemId#779017L, qty#779018, demandChannel#779019, demandStream#779020, kpis#779021], MapPartitionsRDD[36645] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(33) Filter [codegen id : 7]
Input [6]: [shardId#779016, worklistShardItemId#779017L, qty#779018, demandChannel#779019, demandStream#779020, kpis#779021]
Condition : (((isnull(qty#779018) AND isnull(demandChannel#779019)) AND isnull(demandStream#779020)) AND (isnotnull(shardId#779016) AND isnotnull(worklistShardItemId#779017L)))
(34) Project [codegen id : 7]
Output [3]: [shardId#779016, worklistShardItemId#779017L, coalesce(kpis#779021, []) AS prodLocSpecificKpis#779022]
Input [6]: [shardId#779016, worklistShardItemId#779017L, qty#779018, demandChannel#779019, demandStream#779020, kpis#779021]
(35) Exchange
Input [3]: [shardId#779016, worklistShardItemId#779017L, prodLocSpecificKpis#779022]
Arguments: hashpartitioning(shardId#779016, worklistShardItemId#779017L, 20), ENSURE_REQUIREMENTS, [plan_id=308839]
(36) Sort [codegen id : 8]
Input [3]: [shardId#779016, worklistShardItemId#779017L, prodLocSpecificKpis#779022]
Arguments: [shardId#779016 ASC NULLS FIRST, worklistShardItemId#779017L ASC NULLS FIRST], false, 0
(37) SortMergeJoin [codegen id : 9]
Left keys [2]: [shardId#777607, worklistShardItemId#778119L]
Right keys [2]: [shardId#779016, worklistShardItemId#779017L]
Join type: LeftOuter
Join condition: None
(38) Project [codegen id : 9]
Output [40]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337, coalesce(prodLocSpecificKpis#779022, []) AS prodLocSpecificKpis#779023]
Input [42]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337, shardId#779016, worklistShardItemId#779017L, prodLocSpecificKpis#779022]
(39) Scan ExistingRDD [codegen id : 10]
Output [6]: [shardId#779032, worklistShardItemId#779033L, qty#779034, demandChannel#779035, demandStream#779036, kpis#779037]
Arguments: [shardId#779032, worklistShardItemId#779033L, qty#779034, demandChannel#779035, demandStream#779036, kpis#779037], MapPartitionsRDD[36645] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(40) Filter [codegen id : 10]
Input [6]: [shardId#779032, worklistShardItemId#779033L, qty#779034, demandChannel#779035, demandStream#779036, kpis#779037]
Condition : ((((isnull(qty#779034) AND isnotnull(demandChannel#779035)) AND isnotnull(demandStream#779036)) AND (size(kpis#779037, true) > 0)) AND (isnotnull(shardId#779032) AND isnotnull(worklistShardItemId#779033L)))
(41) Project [codegen id : 10]
Output [5]: [shardId#779032, worklistShardItemId#779033L, demandChannel#779035, demandStream#779036, kpis#779037]
Input [6]: [shardId#779032, worklistShardItemId#779033L, qty#779034, demandChannel#779035, demandStream#779036, kpis#779037]
(42) ObjectHashAggregate
Input [5]: [shardId#779032, worklistShardItemId#779033L, demandChannel#779035, demandStream#779036, kpis#779037]
Keys [2]: [shardId#779032, worklistShardItemId#779033L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#779035, demandStream, demandStream#779036, kpis, kpis#779037), 0, 0)]
Aggregate Attributes [1]: [buf#779212]
Results [3]: [shardId#779032, worklistShardItemId#779033L, buf#779213]
(43) Exchange
Input [3]: [shardId#779032, worklistShardItemId#779033L, buf#779213]
Arguments: hashpartitioning(shardId#779032, worklistShardItemId#779033L, 20), ENSURE_REQUIREMENTS, [plan_id=308850]
(44) ObjectHashAggregate
Input [3]: [shardId#779032, worklistShardItemId#779033L, buf#779213]
Keys [2]: [shardId#779032, worklistShardItemId#779033L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#779035, demandStream, demandStream#779036, kpis, kpis#779037), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#779035, demandStream, demandStream#779036, kpis, kpis#779037), 0, 0)#779031]
Results [3]: [shardId#779032, worklistShardItemId#779033L, collect_list(struct(demandChannel, demandChannel#779035, demandStream, demandStream#779036, kpis, kpis#779037), 0, 0)#779031 AS channelStreamSpecificKpis#779024]
(45) Sort [codegen id : 11]
Input [3]: [shardId#779032, worklistShardItemId#779033L, channelStreamSpecificKpis#779024]
Arguments: [shardId#779032 ASC NULLS FIRST, worklistShardItemId#779033L ASC NULLS FIRST], false, 0
(46) SortMergeJoin [codegen id : 12]
Left keys [2]: [shardId#777607, worklistShardItemId#778119L]
Right keys [2]: [shardId#779032, worklistShardItemId#779033L]
Join type: LeftOuter
Join condition: None
(47) Project [codegen id : 12]
Output [41]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337, prodLocSpecificKpis#779023, coalesce(channelStreamSpecificKpis#779024, []) AS channelStreamSpecificKpis#779038]
Input [43]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337, prodLocSpecificKpis#779023, shardId#779032, worklistShardItemId#779033L, channelStreamSpecificKpis#779024]
(48) Scan ExistingRDD [codegen id : 13]
Output [6]: [shardId#779045, worklistShardItemId#779046L, qty#779047, demandChannel#779048, demandStream#779049, kpis#779050]
Arguments: [shardId#779045, worklistShardItemId#779046L, qty#779047, demandChannel#779048, demandStream#779049, kpis#779050], MapPartitionsRDD[36645] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(49) Filter [codegen id : 13]
Input [6]: [shardId#779045, worklistShardItemId#779046L, qty#779047, demandChannel#779048, demandStream#779049, kpis#779050]
Condition : ((isnotnull(qty#779047) AND isnotnull(kpis#779050)) AND (isnotnull(shardId#779045) AND isnotnull(worklistShardItemId#779046L)))
(50) Project [codegen id : 13]
Output [4]: [shardId#779045, worklistShardItemId#779046L, qty#779047, kpis#779050]
Input [6]: [shardId#779045, worklistShardItemId#779046L, qty#779047, demandChannel#779048, demandStream#779049, kpis#779050]
(51) ObjectHashAggregate
Input [4]: [shardId#779045, worklistShardItemId#779046L, qty#779047, kpis#779050]
Keys [2]: [shardId#779045, worklistShardItemId#779046L]
Functions [1]: [partial_collect_list(struct(qty, qty#779047, kpis, kpis#779050), 0, 0)]
Aggregate Attributes [1]: [buf#779214]
Results [3]: [shardId#779045, worklistShardItemId#779046L, buf#779215]
(52) Exchange
Input [3]: [shardId#779045, worklistShardItemId#779046L, buf#779215]
Arguments: hashpartitioning(shardId#779045, worklistShardItemId#779046L, 20), ENSURE_REQUIREMENTS, [plan_id=308862]
(53) ObjectHashAggregate
Input [3]: [shardId#779045, worklistShardItemId#779046L, buf#779215]
Keys [2]: [shardId#779045, worklistShardItemId#779046L]
Functions [1]: [collect_list(struct(qty, qty#779047, kpis, kpis#779050), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#779047, kpis, kpis#779050), 0, 0)#779044]
Results [3]: [shardId#779045, worklistShardItemId#779046L, map_from_entries(collect_list(struct(qty, qty#779047, kpis, kpis#779050), 0, 0)#779044) AS quantityKpis#779039]
(54) Sort [codegen id : 14]
Input [3]: [shardId#779045, worklistShardItemId#779046L, quantityKpis#779039]
Arguments: [shardId#779045 ASC NULLS FIRST, worklistShardItemId#779046L ASC NULLS FIRST], false, 0
(55) SortMergeJoin [codegen id : 15]
Left keys [2]: [shardId#777607, worklistShardItemId#778119L]
Right keys [2]: [shardId#779045, worklistShardItemId#779046L]
Join type: LeftOuter
Join condition: None
(56) Project [codegen id : 15]
Output [42]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337, prodLocSpecificKpis#779023, channelStreamSpecificKpis#779038, coalesce(quantityKpis#779039, map(keys: [], values: [])) AS quantityKpis#779051]
Input [44]: [shardId#777607, worklistShardItemId#778119L, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778320L, originalReplenishmentRunId#778362L, supplierGroup#778322, supplier#778323, supplyingPlant#778327, productGroup#778328, product#778329, plant#778324, subrange#778326, orderDateTime#778330, deliveryDateTime#778325, availabilityDateTime#778331, nextAvailabilityDateTime#778332, constraintValues#778353, constraintOperators#778352, constraintLabels#778351, logisticUnits#778347, orderQuantityBaseUom#778348, orderQuantityBaseUomUuid#778349, splitIndicator#778339L, netPriceAmount#778356, netPriceCurrencyCode#778357, netPriceQuantity#778358, netPriceQuantityUom#778359, netPriceQuantityUomUuid#778360, sourceOfSupplyUuid#778334, minimumOrderQuantity#778350, orderProposalItemId#778321, orderProposalItemGroupId#778344, optimizationGroups#778363, measurements#778361, externalProductId#778345, externalPlantId#778346, previousOrderProposal#778340L, isFallbackOrderOnly#778337, prodLocSpecificKpis#779023, channelStreamSpecificKpis#779038, shardId#779045, worklistShardItemId#779046L, quantityKpis#779039]
(57) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#778297, channelStreamSpecificKpis#779038, constraintLabels#778309, constraintOperators#778310, constraintValues#778312, deliveryDateTime#778296, isFallbackOrderOnly#778299, logisticUnits#778314, measurements#778307, minimumOrderQuantity#778308, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, nextAvailabilityDateTime#778298, optimizationGroups#778315, orderDateTime#778295, orderProposalId#778277L, orderProposalItemGroupId#778279, orderProposalItemId#778278, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, originalReplenishmentRunId#778280L, plant#778291, previousOrderProposal#778283L, prodLocSpecificKpis#779023, product#778290, productGroup#778319, qty#778121, quantityAfterProdPlantOptimization#778120, quantityKpis#779051, shardId#777607, sourceOfSupplyUuid#778286, splitIndicator#778282L, subrange#778289, supplier#778288, supplierGroup#778287, supplyingPlant#778318]
Condition : NOT (isFallbackOrderOnly#778299 <=> true)
(58) Project [codegen id : 1]
Output [36]: [shardId#777607, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, availabilityDateTime#778297, nextAvailabilityDateTime#778298, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, sourceOfSupplyUuid#778286, minimumOrderQuantity#778308, orderProposalItemId#778278, orderProposalItemGroupId#778279, optimizationGroups#778315, measurements#778307, previousOrderProposal#778283L, prodLocSpecificKpis#779023, channelStreamSpecificKpis#779038, quantityKpis#779051, arrays_zip(constraintLabels#778309, constraintOperators#778310, constraintValues#778312, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#779465]
Input [39]: [availabilityDateTime#778297, channelStreamSpecificKpis#779038, constraintLabels#778309, constraintOperators#778310, constraintValues#778312, deliveryDateTime#778296, isFallbackOrderOnly#778299, logisticUnits#778314, measurements#778307, minimumOrderQuantity#778308, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, nextAvailabilityDateTime#778298, optimizationGroups#778315, orderDateTime#778295, orderProposalId#778277L, orderProposalItemGroupId#778279, orderProposalItemId#778278, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, originalReplenishmentRunId#778280L, plant#778291, previousOrderProposal#778283L, prodLocSpecificKpis#779023, product#778290, productGroup#778319, qty#778121, quantityAfterProdPlantOptimization#778120, quantityKpis#779051, shardId#777607, sourceOfSupplyUuid#778286, splitIndicator#778282L, subrange#778289, supplier#778288, supplierGroup#778287, supplyingPlant#778318]
(59) Project
Output [37]: [shardId#777607, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, availabilityDateTime#778297, nextAvailabilityDateTime#778298, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, sourceOfSupplyUuid#778286, orderProposalItemId#778278, orderProposalItemGroupId#778279, optimizationGroups#778315, measurements#778307, previousOrderProposal#778283L, prodLocSpecificKpis#779023, channelStreamSpecificKpis#779038, quantityKpis#779051, struct(minServiceLevel, array_min(filter(constraintStructArray#779465, lambdafunction((lambda x_2015#779472.constraintLabels = ServiceLevel), lambda x_2015#779472, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#779465, lambdafunction((lambda x_2016#779473.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_2016#779473, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#779465, lambdafunction((lambda x_2017#779474.constraintLabels = RangeOfCoverage), lambda x_2017#779474, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#778308, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#779023, lambdafunction((lambda x_2018#779475.label = NonListingStartTimestamp), lambda x_2018#779475, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#779471, CASE WHEN (qty#778121 <=> quantityAfterProdPlantOptimization#778120) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#778121 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779543.isOrderUnit, lambda x_2019#779543, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779544.isOrderUnit, lambda x_2019#779544, false)), 1, None, false).numerator as double))), qty#778121), orderQuantityUom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779545.isOrderUnit, lambda x_2019#779545, false)), 1, None, false).uom, orderQuantityBaseUom#778300), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779546.isOrderUnit, lambda x_2019#779546, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301), candidateOrderQuantityInBaseUnit, qty#778121, orderQuantityBaseUom, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#778301, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2021#779547.isPreferred AND (((qty#778121 * cast(lambda x_2021#779547.denominator as double)) % cast(lambda x_2021#779547.numerator as double)) = 0.0)), lambda x_2021#779547, false)), lambdafunction(struct(inPreferredQuantity, ((qty#778121 * cast(lambda x_2022#779585.denominator as double)) / cast(lambda x_2022#779585.numerator as double)), uom, lambda x_2022#779585.uom, uomUuid, lambda x_2022#779585.uomUuid), lambda x_2022#779585, false))).inPreferredQuantity, coalesce((qty#778121 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779548.isOrderUnit, lambda x_2020#779548, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779549.isOrderUnit, lambda x_2020#779549, false)), 1, None, false).numerator as double))), qty#778121)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2021#779550.isPreferred AND (((qty#778121 * cast(lambda x_2021#779550.denominator as double)) % cast(lambda x_2021#779550.numerator as double)) = 0.0)), lambda x_2021#779550, false)), lambdafunction(struct(inPreferredQuantity, ((qty#778121 * cast(lambda x_2022#779586.denominator as double)) / cast(lambda x_2022#779586.numerator as double)), uom, lambda x_2022#779586.uom, uomUuid, lambda x_2022#779586.uomUuid), lambda x_2022#779586, false))).uom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779551.isOrderUnit, lambda x_2020#779551, false)), 1, None, false).uom, orderQuantityBaseUom#778300)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2021#779552.isPreferred AND (((qty#778121 * cast(lambda x_2021#779552.denominator as double)) % cast(lambda x_2021#779552.numerator as double)) = 0.0)), lambda x_2021#779552, false)), lambdafunction(struct(inPreferredQuantity, ((qty#778121 * cast(lambda x_2022#779587.denominator as double)) / cast(lambda x_2022#779587.numerator as double)), uom, lambda x_2022#779587.uom, uomUuid, lambda x_2022#779587.uomUuid), lambda x_2022#779587, false))).uomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779553.isOrderUnit, lambda x_2020#779553, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301)), serviceLevel, coalesce(filter(element_at(quantityKpis#779051, qty#778121, None, false), lambdafunction((lambda x_2027#779554.label = ServiceLevel), lambda x_2027#779554, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#778121 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779557.isOrderUnit, lambda x_2019#779557, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779558.isOrderUnit, lambda x_2019#779558, false)), 1, None, false).numerator as double))), qty#778121), orderQuantityUom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779559.isOrderUnit, lambda x_2019#779559, false)), 1, None, false).uom, orderQuantityBaseUom#778300), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2019#779560.isOrderUnit, lambda x_2019#779560, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301), candidateOrderQuantityInBaseUnit, qty#778121, orderQuantityBaseUom, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#778301, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2021#779561.isPreferred AND (((qty#778121 * cast(lambda x_2021#779561.denominator as double)) % cast(lambda x_2021#779561.numerator as double)) = 0.0)), lambda x_2021#779561, false)), lambdafunction(struct(inPreferredQuantity, ((qty#778121 * cast(lambda x_2022#779588.denominator as double)) / cast(lambda x_2022#779588.numerator as double)), uom, lambda x_2022#779588.uom, uomUuid, lambda x_2022#779588.uomUuid), lambda x_2022#779588, false))).inPreferredQuantity, coalesce((qty#778121 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779562.isOrderUnit, lambda x_2020#779562, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779563.isOrderUnit, lambda x_2020#779563, false)), 1, None, false).numerator as double))), qty#778121)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2021#779564.isPreferred AND (((qty#778121 * cast(lambda x_2021#779564.denominator as double)) % cast(lambda x_2021#779564.numerator as double)) = 0.0)), lambda x_2021#779564, false)), lambdafunction(struct(inPreferredQuantity, ((qty#778121 * cast(lambda x_2022#779589.denominator as double)) / cast(lambda x_2022#779589.numerator as double)), uom, lambda x_2022#779589.uom, uomUuid, lambda x_2022#779589.uomUuid), lambda x_2022#779589, false))).uom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779565.isOrderUnit, lambda x_2020#779565, false)), 1, None, false).uom, orderQuantityBaseUom#778300)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2021#779566.isPreferred AND (((qty#778121 * cast(lambda x_2021#779566.denominator as double)) % cast(lambda x_2021#779566.numerator as double)) = 0.0)), lambda x_2021#779566, false)), lambdafunction(struct(inPreferredQuantity, ((qty#778121 * cast(lambda x_2022#779590.denominator as double)) / cast(lambda x_2022#779590.numerator as double)), uom, lambda x_2022#779590.uom, uomUuid, lambda x_2022#779590.uomUuid), lambda x_2022#779590, false))).uomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2020#779567.isOrderUnit, lambda x_2020#779567, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301)), serviceLevel, coalesce(filter(element_at(quantityKpis#779051, qty#778121, None, false), lambdafunction((lambda x_2030#779568.label = ServiceLevel), lambda x_2030#779568, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#778120 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2023#779571.isOrderUnit, lambda x_2023#779571, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2023#779572.isOrderUnit, lambda x_2023#779572, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#778120), orderQuantityUom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2023#779573.isOrderUnit, lambda x_2023#779573, false)), 1, None, false).uom, orderQuantityBaseUom#778300), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2023#779574.isOrderUnit, lambda x_2023#779574, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#778120, orderQuantityBaseUom, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#778301, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2025#779575.isPreferred AND (((quantityAfterProdPlantOptimization#778120 * cast(lambda x_2025#779575.denominator as double)) % cast(lambda x_2025#779575.numerator as double)) = 0.0)), lambda x_2025#779575, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#778120 * cast(lambda x_2026#779591.denominator as double)) / cast(lambda x_2026#779591.numerator as double)), uom, lambda x_2026#779591.uom, uomUuid, lambda x_2026#779591.uomUuid), lambda x_2026#779591, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#778120 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2024#779576.isOrderUnit, lambda x_2024#779576, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2024#779577.isOrderUnit, lambda x_2024#779577, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#778120)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2025#779578.isPreferred AND (((quantityAfterProdPlantOptimization#778120 * cast(lambda x_2025#779578.denominator as double)) % cast(lambda x_2025#779578.numerator as double)) = 0.0)), lambda x_2025#779578, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#778120 * cast(lambda x_2026#779592.denominator as double)) / cast(lambda x_2026#779592.numerator as double)), uom, lambda x_2026#779592.uom, uomUuid, lambda x_2026#779592.uomUuid), lambda x_2026#779592, false))).uom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2024#779579.isOrderUnit, lambda x_2024#779579, false)), 1, None, false).uom, orderQuantityBaseUom#778300)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#778314, lambdafunction((lambda x_2025#779580.isPreferred AND (((quantityAfterProdPlantOptimization#778120 * cast(lambda x_2025#779580.denominator as double)) % cast(lambda x_2025#779580.numerator as double)) = 0.0)), lambda x_2025#779580, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#778120 * cast(lambda x_2026#779593.denominator as double)) / cast(lambda x_2026#779593.numerator as double)), uom, lambda x_2026#779593.uom, uomUuid, lambda x_2026#779593.uomUuid), lambda x_2026#779593, false))).uomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2024#779581.isOrderUnit, lambda x_2024#779581, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301)), serviceLevel, coalesce(filter(element_at(quantityKpis#779051, quantityAfterProdPlantOptimization#778120, None, false), lambdafunction((lambda x_2033#779582.label = ServiceLevel), lambda x_2033#779582, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#779542, coalesce(filter(prodLocSpecificKpis#779023, lambdafunction((lambda x_2036#779595.label = InitialStockQty), lambda x_2036#779595, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#779594, coalesce(filter(prodLocSpecificKpis#779023, lambdafunction((lambda x_2037#779597.label = DemandPeriodEndTimestamp), lambda x_2037#779597, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#779596]
Input [36]: [shardId#777607, quantityAfterProdPlantOptimization#778120, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, availabilityDateTime#778297, nextAvailabilityDateTime#778298, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, sourceOfSupplyUuid#778286, minimumOrderQuantity#778308, orderProposalItemId#778278, orderProposalItemGroupId#778279, optimizationGroups#778315, measurements#778307, previousOrderProposal#778283L, prodLocSpecificKpis#779023, channelStreamSpecificKpis#779038, quantityKpis#779051, constraintStructArray#779465]
(60) Project
Output [21]: [shardId#777607, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, orderProposalItemId#778278, orderProposalItemGroupId#778279, previousOrderProposal#778283L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#778288, supplyingPlant, supplyingPlant#778318, productGroup, productGroup#778319, product, product#778290, plant, plant#778291, supplierSubRange, subrange#778289, sourceOfSupplyUuid, sourceOfSupplyUuid#778286, deliveryDateTime, deliveryDateTime#778296, unitPrice, netPriceAmount#778305, unitPriceCurrency, netPriceCurrencyCode#778306, unitPriceQuantity, ... 37 more fields) AS parentItem#779676]
Input [37]: [shardId#777607, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, availabilityDateTime#778297, nextAvailabilityDateTime#778298, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, netPriceAmount#778305, netPriceCurrencyCode#778306, netPriceQuantity#778302, netPriceQuantityUom#778303, netPriceQuantityUomUuid#778304, sourceOfSupplyUuid#778286, orderProposalItemId#778278, orderProposalItemGroupId#778279, optimizationGroups#778315, measurements#778307, previousOrderProposal#778283L, prodLocSpecificKpis#779023, channelStreamSpecificKpis#779038, quantityKpis#779051, constraintBenchmark#779471, calculationAnalysis#779542, inventoryDateTime#779594, demandPeriodEndDateTime#779596]
(61) Project
Output [12]: [shardId#777607, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, orderDateTime#778295, splitIndicator#778282L, orderProposalItemGroupId#778279, previousOrderProposal#778283L, parentItem#779676, struct(itemId, orderProposalItemId#778278, supplier, supplier#778288, supplyingPlant, supplyingPlant#778318, productGroup, productGroup#778319, product, product#778290, plant, plant#778291, supplierSubRange, subrange#778289, deliveryDateTime, deliveryDateTime#778296, orderQuantity, coalesce((qty#778121 * (cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2061#779710.isOrderUnit, lambda x_2061#779710, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2061#779711.isOrderUnit, lambda x_2061#779711, false)), 1, None, false).numerator as double))), qty#778121), orderQuantityUom, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2061#779712.isOrderUnit, lambda x_2061#779712, false)), 1, None, false).uom, orderQuantityBaseUom#778300), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#778314, lambdafunction(lambda x_2061#779713.isOrderUnit, lambda x_2061#779713, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#778301), orderQuantityInBaseUnit, qty#778121, orderQuantityBaseUom, ... 13 more fields) AS item#779707]
Input [21]: [shardId#777607, qty#778121, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, productGroup#778319, product#778290, plant#778291, subrange#778289, orderDateTime#778295, deliveryDateTime#778296, logisticUnits#778314, orderQuantityBaseUom#778300, orderQuantityBaseUomUuid#778301, splitIndicator#778282L, orderProposalItemId#778278, orderProposalItemGroupId#778279, previousOrderProposal#778283L, parentItem#779676]
(62) ObjectHashAggregate
Input [12]: [shardId#777607, orderProposalId#778277L, originalReplenishmentRunId#778280L, supplierGroup#778287, supplier#778288, supplyingPlant#778318, orderDateTime#778295, splitIndicator#778282L, orderProposalItemGroupId#778279, previousOrderProposal#778283L, parentItem#779676, item#779707]
Keys [4]: [shardId#777607, orderProposalId#778277L, splitIndicator#778282L, orderProposalItemGroupId#778279]
Functions [8]: [partial_max(originalReplenishmentRunId#778280L), partial_max(supplierGroup#778287), partial_max(supplier#778288), partial_max(supplyingPlant#778318), partial_max(orderDateTime#778295), partial_collect_list(parentItem#779676, 0, 0), partial_collect_set(previousOrderProposal#778283L, 0, 0), partial_collect_list(item#779707, 0, 0)]
Aggregate Attributes [8]: [max#780968L, max#780969, max#780970, max#780971, max#780972, buf#780973, buf#780974, buf#780975]
Results [12]: [shardId#777607, orderProposalId#778277L, splitIndicator#778282L, orderProposalItemGroupId#778279, max#780976L, max#780977, max#780978, max#780979, max#780980, buf#780981, buf#780982, buf#780983]
(63) Exchange
Input [12]: [shardId#777607, orderProposalId#778277L, splitIndicator#778282L, orderProposalItemGroupId#778279, max#780976L, max#780977, max#780978, max#780979, max#780980, buf#780981, buf#780982, buf#780983]
Arguments: hashpartitioning(shardId#777607, orderProposalId#778277L, splitIndicator#778282L, orderProposalItemGroupId#778279, 20), ENSURE_REQUIREMENTS, [plan_id=309114]
(64) ObjectHashAggregate
Input [12]: [shardId#777607, orderProposalId#778277L, splitIndicator#778282L, orderProposalItemGroupId#778279, max#780976L, max#780977, max#780978, max#780979, max#780980, buf#780981, buf#780982, buf#780983]
Keys [4]: [shardId#777607, orderProposalId#778277L, splitIndicator#778282L, orderProposalItemGroupId#778279]
Functions [8]: [max(originalReplenishmentRunId#778280L), max(supplierGroup#778287), max(supplier#778288), max(supplyingPlant#778318), max(orderDateTime#778295), collect_list(parentItem#779676, 0, 0), collect_set(previousOrderProposal#778283L, 0, 0), collect_list(item#779707, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#778280L)#779776L, max(supplierGroup#778287)#779777, max(supplier#778288)#779778, max(supplyingPlant#778318)#779779, max(orderDateTime#778295)#779780, collect_list(parentItem#779676, 0, 0)#779781, collect_set(previousOrderProposal#778283L, 0, 0)#779783, collect_list(item#779707, 0, 0)#779782]
Results [10]: [shardId#777607, orderProposalId#778277L, max(originalReplenishmentRunId#778280L)#779776L AS originalReplenishmentRunId#779724L, max(supplierGroup#778287)#779777 AS supplierGroup#779725, max(supplier#778288)#779778 AS supplier#779726, max(supplyingPlant#778318)#779779 AS supplyingPlant#779727, max(orderDateTime#778295)#779780 AS orderDateTime#779728, collect_list(parentItem#779676, 0, 0)#779781 AS parentItems#779729, collect_set(previousOrderProposal#778283L, 0, 0)#779783 AS previousOrderProposals#779731, struct(itemGroupId, coalesce(orderProposalItemGroupId#778279, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#779707, 0, 0)#779782) AS itemGroup#779785]
(65) ObjectHashAggregate
Input [10]: [shardId#777607, orderProposalId#778277L, originalReplenishmentRunId#779724L, supplierGroup#779725, supplier#779726, supplyingPlant#779727, orderDateTime#779728, parentItems#779729, previousOrderProposals#779731, itemGroup#779785]
Keys [2]: [shardId#777607, orderProposalId#778277L]
Functions [8]: [partial_max(originalReplenishmentRunId#779724L), partial_max(supplierGroup#779725), partial_max(supplier#779726), partial_max(supplyingPlant#779727), partial_max(orderDateTime#779728), partial_collect_list(itemGroup#779785, 0, 0), partial_collect_list(parentItems#779729, 0, 0), partial_collect_set(previousOrderProposals#779731, 0, 0)]
Aggregate Attributes [8]: [max#780952L, max#780953, max#780954, max#780955, max#780956, buf#780957, buf#780958, buf#780959]
Results [10]: [shardId#777607, orderProposalId#778277L, max#780960L, max#780961, max#780962, max#780963, max#780964, buf#780965, buf#780966, buf#780967]
(66) Exchange
Input [10]: [shardId#777607, orderProposalId#778277L, max#780960L, max#780961, max#780962, max#780963, max#780964, buf#780965, buf#780966, buf#780967]
Arguments: hashpartitioning(shardId#777607, orderProposalId#778277L, 20), ENSURE_REQUIREMENTS, [plan_id=309117]
(67) ObjectHashAggregate
Input [10]: [shardId#777607, orderProposalId#778277L, max#780960L, max#780961, max#780962, max#780963, max#780964, buf#780965, buf#780966, buf#780967]
Keys [2]: [shardId#777607, orderProposalId#778277L]
Functions [8]: [max(originalReplenishmentRunId#779724L), max(supplierGroup#779725), max(supplier#779726), max(supplyingPlant#779727), max(orderDateTime#779728), collect_list(itemGroup#779785, 0, 0), collect_list(parentItems#779729, 0, 0), collect_set(previousOrderProposals#779731, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#779724L)#779807L, max(supplierGroup#779725)#779808, max(supplier#779726)#779809, max(supplyingPlant#779727)#779810, max(orderDateTime#779728)#779811, collect_list(itemGroup#779785, 0, 0)#779812, collect_list(parentItems#779729, 0, 0)#779813, collect_set(previousOrderProposals#779731, 0, 0)#779814]
Results [10]: [shardId#777607, orderProposalId#778277L, max(originalReplenishmentRunId#779724L)#779807L AS originalReplenishmentRunId#779786L, max(supplierGroup#779725)#779808 AS supplierGroup#779787, max(supplier#779726)#779809 AS supplier#779788, max(supplyingPlant#779727)#779810 AS supplyingPlant#779789, max(orderDateTime#779728)#779811 AS orderDateTime#779790, collect_list(itemGroup#779785, 0, 0)#779812 AS itemGroups#779791, flatten(collect_list(parentItems#779729, 0, 0)#779813) AS parentItems#779792, flatten(collect_set(previousOrderProposals#779731, 0, 0)#779814) AS previousOrderProposals#779793]
(68) Project
Output [2]: [shardId#777607, struct(orderProposalId, orderProposalId#778277L, originalReplenishmentRunId, originalReplenishmentRunId#779786L, supplierGroup, supplierGroup#779787, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#779787) THEN supplier#779788 END, supplyingPlant, supplyingPlant#779789, orderDateTime, orderDateTime#779790, itemGroups, itemGroups#779791, previousOrderProposals, array_distinct(previousOrderProposals#779793), parentItems, parentItems#779792) AS orderProposal#779818]
Input [10]: [shardId#777607, orderProposalId#778277L, originalReplenishmentRunId#779786L, supplierGroup#779787, supplier#779788, supplyingPlant#779789, orderDateTime#779790, itemGroups#779791, parentItems#779792, previousOrderProposals#779793]
(69) Project
Output [11]: [shardId#777607, orderProposal#779818.orderProposalId AS _extract_orderProposalId#780584L, orderProposal#779818.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#780585L, orderProposal#779818.supplierGroup AS _extract_supplierGroup#780586, orderProposal#779818.supplier AS _extract_supplier#780587, orderProposal#779818.supplyingPlant AS _extract_supplyingPlant#780588, orderProposal#779818.orderDateTime AS _extract_orderDateTime#780589, orderProposal#779818.itemGroups AS _extract_itemGroups#780590, orderProposal#779818.previousOrderProposals AS _extract_previousOrderProposals#780591, orderProposal#779818.parentItems AS _extract_parentItems#780592, orderProposal#779818.orderProposalId AS _extract_orderProposalId#780593L]
Input [2]: [shardId#777607, orderProposal#779818]
(70) Exchange
Input [11]: [shardId#777607, _extract_orderProposalId#780584L, _extract_originalReplenishmentRunId#780585L, _extract_supplierGroup#780586, _extract_supplier#780587, _extract_supplyingPlant#780588, _extract_orderDateTime#780589, _extract_itemGroups#780590, _extract_previousOrderProposals#780591, _extract_parentItems#780592, _extract_orderProposalId#780593L]
Arguments: hashpartitioning(coalesce(shardId#777607, ), isnull(shardId#777607), coalesce(_extract_orderProposalId#780593L, 0), isnull(_extract_orderProposalId#780593L), 20), ENSURE_REQUIREMENTS, [plan_id=309121]
(71) Sort
Input [11]: [shardId#777607, _extract_orderProposalId#780584L, _extract_originalReplenishmentRunId#780585L, _extract_supplierGroup#780586, _extract_supplier#780587, _extract_supplyingPlant#780588, _extract_orderDateTime#780589, _extract_itemGroups#780590, _extract_previousOrderProposals#780591, _extract_parentItems#780592, _extract_orderProposalId#780593L]
Arguments: [coalesce(shardId#777607, ) ASC NULLS FIRST, isnull(shardId#777607) ASC NULLS FIRST, coalesce(_extract_orderProposalId#780593L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#780593L) ASC NULLS FIRST], false, 0
(72) InMemoryTableScan
Output [3]: [shardId#779841, orderProposalId#779842L, optimizationGroups#779844]
Arguments: [shardId#779841, orderProposalId#779842L, optimizationGroups#779844], [isnotnull(orderProposalId#779842L)]
(73) InMemoryRelation
Arguments: [shardId#779841, orderProposalId#779842L, items#779843, optimizationGroups#779844, isOptimal#779845, optimizationInsights#779847], StorageLevel(disk, memory, 2 replicas)
(74) Filter [codegen id : 2]
Input [3]: [shardId#779841, orderProposalId#779842L, optimizationGroups#779844]
Condition : isnotnull(orderProposalId#779842L)
(75) BroadcastExchange
Input [3]: [shardId#779841, orderProposalId#779842L, optimizationGroups#779844]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=309126]
(76) InMemoryTableScan
Output [2]: [items#779460, shardId#779458]
Arguments: [items#779460, shardId#779458], [(size(items#779460.worklistShardItemId, true) > 0), isnotnull(items#779460.worklistShardItemId), (shardId#779458 = 0_1_10000002108)]
(77) InMemoryRelation
Arguments: [shardId#779458, orderProposalId#779459L, items#779460, optimizationGroups#779461, isOptimal#779462, optimizationInsights#779464], StorageLevel(disk, memory, 2 replicas)
(78) Filter [codegen id : 3]
Input [2]: [items#779460, shardId#779458]
Condition : (((size(items#779460.worklistShardItemId, true) > 0) AND isnotnull(items#779460.worklistShardItemId)) AND (shardId#779458 = 0_1_10000002108))
(79) Project [codegen id : 3]
Output [1]: [items#779460.worklistShardItemId AS _extract_worklistShardItemId#780489]
Input [2]: [items#779460, shardId#779458]
(80) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#780489]
Arguments: explode(_extract_worklistShardItemId#780489), false, [item#779848L]
(81) Project [codegen id : 3]
Output [1]: [item#779848L AS worklistShardItemId#779849L]
Input [1]: [item#779848L]
(82) BroadcastExchange
Input [1]: [worklistShardItemId#779849L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=309134]
(83) Scan parquet
Output [5]: [orderProposalId#779897L, isFallbackOrderOnly#779914, worklistShardItemId#779920L, shardId#779941, sequenceId#779919]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/internal/prod-plant-snapshot/10000002108]
PartitionFilters: [isnotnull(shardId#779941), isnotnull(sequenceId#779919), (shardId#779941 = 0_1_10000002108), (sequenceId#779919 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(84) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#779897L, isFallbackOrderOnly#779914, worklistShardItemId#779920L, shardId#779941, sequenceId#779919]
(85) Filter [codegen id : 4]
Input [5]: [orderProposalId#779897L, isFallbackOrderOnly#779914, worklistShardItemId#779920L, shardId#779941, sequenceId#779919]
Condition : ((isnotnull(worklistShardItemId#779920L) AND NOT (isFallbackOrderOnly#779914 <=> true)) AND isnotnull(orderProposalId#779897L))
(86) Project [codegen id : 4]
Output [2]: [orderProposalId#779897L, worklistShardItemId#779920L]
Input [5]: [orderProposalId#779897L, isFallbackOrderOnly#779914, worklistShardItemId#779920L, shardId#779941, sequenceId#779919]
(87) Exchange
Input [2]: [orderProposalId#779897L, worklistShardItemId#779920L]
Arguments: hashpartitioning(worklistShardItemId#779920L, 20), REPARTITION_BY_NUM, [plan_id=309141]
(88) Project
Output [2]: [worklistShardItemId#779920L, orderProposalId#779897L]
Input [2]: [orderProposalId#779897L, worklistShardItemId#779920L]
(89) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#779849L]
Right keys [1]: [worklistShardItemId#779920L]
Join type: Inner
Join condition: None
(90) Project [codegen id : 5]
Output [1]: [orderProposalId#779897L]
Input [3]: [worklistShardItemId#779849L, worklistShardItemId#779920L, orderProposalId#779897L]
(91) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#779897L]
Keys [1]: [orderProposalId#779897L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#779897L]
(92) Exchange
Input [1]: [orderProposalId#779897L]
Arguments: hashpartitioning(orderProposalId#779897L, 20), ENSURE_REQUIREMENTS, [plan_id=309148]
(93) HashAggregate
Input [1]: [orderProposalId#779897L]
Keys [1]: [orderProposalId#779897L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#779897L]
(94) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#779842L]
Right keys [1]: [orderProposalId#779897L]
Join type: Inner
Join condition: None
(95) Project
Output [3]: [orderProposalId#779842L, shardId#779841, coalesce(transform(optimizationGroups#779844, lambdafunction(struct(optGroupId, lambda x_2065#779839.optGroupId, minOrderProfile, lambda x_2065#779839.minOrderProfile, assignmentDetails, lambda x_2065#779839.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_2065#779839.minOrderGoal.dimensionType, unit, lambda x_2065#779839.minOrderGoal.unit, unitUuid, lambda x_2065#779839.minOrderGoal.unitUuid, goalValue, lambda x_2065#779839.minOrderGoal.minOrderValue, calcValue, lambda x_2065#779839.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_2065#779839, false)), []) AS optimizationGroups#779838]
Input [4]: [shardId#779841, orderProposalId#779842L, optimizationGroups#779844, orderProposalId#779897L]
(96) Exchange
Input [3]: [orderProposalId#779842L, shardId#779841, optimizationGroups#779838]
Arguments: hashpartitioning(coalesce(shardId#779841, ), isnull(shardId#779841), coalesce(orderProposalId#779842L, 0), isnull(orderProposalId#779842L), 20), ENSURE_REQUIREMENTS, [plan_id=309154]
(97) Sort [codegen id : 7]
Input [3]: [orderProposalId#779842L, shardId#779841, optimizationGroups#779838]
Arguments: [coalesce(shardId#779841, ) ASC NULLS FIRST, isnull(shardId#779841) ASC NULLS FIRST, coalesce(orderProposalId#779842L, 0) ASC NULLS FIRST, isnull(orderProposalId#779842L) ASC NULLS FIRST], false, 0
(98) SortMergeJoin
Left keys [4]: [coalesce(shardId#777607, ), isnull(shardId#777607), coalesce(_extract_orderProposalId#780593L, 0), isnull(_extract_orderProposalId#780593L)]
Right keys [4]: [coalesce(shardId#779841, ), isnull(shardId#779841), coalesce(orderProposalId#779842L, 0), isnull(orderProposalId#779842L)]
Join type: LeftOuter
Join condition: None
(99) Project
Output [2]: [shardId#777607, named_struct(orderProposalId, _extract_orderProposalId#780593L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#780585L, supplierGroup, _extract_supplierGroup#780586, optimizationGroups, coalesce(optimizationGroups#779838, []), supplier, _extract_supplier#780587, supplyingPlant, _extract_supplyingPlant#780588, orderDateTime, _extract_orderDateTime#780589, itemGroups, _extract_itemGroups#780590, previousOrderProposals, _extract_previousOrderProposals#780591, parentItems, _extract_parentItems#780592) AS orderProposal#779945]
Input [14]: [shardId#777607, _extract_orderProposalId#780584L, _extract_originalReplenishmentRunId#780585L, _extract_supplierGroup#780586, _extract_supplier#780587, _extract_supplyingPlant#780588, _extract_orderDateTime#780589, _extract_itemGroups#780590, _extract_previousOrderProposals#780591, _extract_parentItems#780592, _extract_orderProposalId#780593L, orderProposalId#779842L, shardId#779841, optimizationGroups#779838]
(100) Project
Output [3]: [shardId#777607, orderProposal#779945, CASE WHEN (size(orderProposal#779945.parentItems, true) > 2000) THEN xxhash64(orderProposal#779945.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#779945.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#781697L]
Input [2]: [orderProposal#779945, shardId#777607]
(101) ObjectHashAggregate
Input [3]: [shardId#777607, orderProposal#779945, resultSeparationId#781697L]
Keys [2]: [shardId#777607, resultSeparationId#781697L]
Functions [1]: [partial_collect_list(orderProposal#779945, 0, 0)]
Aggregate Attributes [1]: [buf#781736]
Results [3]: [shardId#777607, resultSeparationId#781697L, buf#781737]
(102) Exchange
Input [3]: [shardId#777607, resultSeparationId#781697L, buf#781737]
Arguments: hashpartitioning(shardId#777607, resultSeparationId#781697L, 20), ENSURE_REQUIREMENTS, [plan_id=309301]
(103) ObjectHashAggregate
Input [3]: [shardId#777607, resultSeparationId#781697L, buf#781737]
Keys [2]: [shardId#777607, resultSeparationId#781697L]
Functions [1]: [collect_list(orderProposal#779945, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#779945, 0, 0)#781705]
Results [3]: [shardId#777607, resultSeparationId#781697L, collect_list(orderProposal#779945, 0, 0)#781705 AS orderProposals#781701]
(104) Exchange
Input [3]: [shardId#777607, resultSeparationId#781697L, orderProposals#781701]
Arguments: SinglePartition, REPARTITION_BY_NUM, [plan_id=309344]
(105) Project
Output [2]: [shardId#777607, orderProposals#781701]
Input [3]: [shardId#777607, resultSeparationId#781697L, orderProposals#781701]
(106) CollectLimit
Input: []
Arguments: 1